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:网关组件,提供智能路由、访问过滤等功能