SpringCloud学习
互联网软件架构演变过程
传统架构
SSH架构或者SSM架构,属于单点应用,把整个业务模块都会在一个项目进行开发,分为MVC架构,会拆分为控制层(controller)、业务逻辑层(service)、数据库访问层(dao)。
分布式架构
基于传统架构演变过来,将传统的项目以项目模块进行拆分成n多个子项目,比如拆分成会员项目、订单项目、支付项目。
SOA架构
基于分布式架构演变过来,面向服务架构,俗称服务化,可以理解为面向于业务逻辑层。将共同的业务代码抽取出来,提供给其它接口进行调用。服务与服务之间通信采用rpc远程调用技术。
微服务架构
基于SOA架构演变过来,比SOA架构粒度上更加精细。目的是为了提高效率。每个服务与服务之间互不影响,每个服务必须独立部署,微服务架构更加体现轻量级,采用resuful风格提供API,也就是Http协议+JSON格式,更加轻巧,更加适合于互联网敏捷开发,快速迭代产品。
服务概念:将共同的业务逻辑进行拆分,拆封成独立的一个项目进行部署,没有视图层。服务概念理解为接口。
RPC远程调用技术框架:httpclient,springboot,dubbo,grpc。核心底层socket技术或者netty框架。
SpringCloud简介
SpringCloud是基于SpringBoot基础之上开发的微服务框架,SpringCloud是一套目前非常完整的微服务解决方案框架,其内容包含服务治理、注册中心、配置管理、断路器、只能路由、微代理、控制总线、全局锁、分布式会话等。
SpringCloud包含众多的子项目
SpringCloud config分布式配置中心
SpringCloud netflix核心组件
- Eureka:服务治理、注册中心
- Hystrix:服务保护框架
- Ribbon:客户端负载均衡器
- Feign:基于Ribbon和Hystrix的声明式服务调用组件
- Zuul:网关组件,提供智能路由、访问过滤等功能