1.概述
Spring Cloud 是一套开源的成熟的微服务框架实践方案。它基于Spring Boot 的约定大于配置的理念,整合市面上比较成熟的又相对轻量级的开源项目或组件,提供微服务系统的实践。
官方文档:https://spring.io/projects/spring-cloud
https://cloud.spring.io/spring-cloud-static/Greenwich.SR5/
中文文档:https://www.springcloud.cc/
2.特点
2.1. 约定大于配置
2.2. 适用各种环境(开发/测试/部署)
2.3. 隐藏了组件的复杂性,并提供声明式、无XML式的配置方式
2.4. 开箱即用,快速启动
2.5. 轻量级组件。Spring Cloud 整合的组件大都比较轻量级(且都是各自领域的成熟产品),如Eureka、Zuul等
2.6. 集大成者,组件丰富、功能齐全:服务治理、配置管理、断路器、网关、消息总线等
2.7. 选型中立、丰富,兼容性好。例如服务发现可以支持Eureka、Zookeeper或Consul
2.8. 灵活。Spring Cloud 的组成部分是解耦的,开发者可以按需选择和选型
2.9. Restful 服务调用(dubbo使用 rpc 实现服务调用)
3.版本
Spring Cloud 的版本号采用 “地铁站名+SR+数字” 格式命名。Spring Cloud使用伦敦地铁站名命名版本,站名采用英文字母排序。因为Spring Cloud是一个综合项目,它包含很多子项目。由于子项目也维护着自己的版本号,Spring Cloud采用了这种命名方式,从而避免与子项目的版本混淆。SR 即 Service Release ,一般表示 bug 修复。
Spring Cloud 较新版本一览表
Spring Cloud 与 Spring Boot 版本适配一览表
4. Spring Cloud常用组件
4.1. Spring Cloud Netflix:核心组件,多个开源套件的整个,主要包括:
4.1.1. Eureka:服务治理组件,包括服务注册与发现
4.1.2. Hystrix:容错管理组件,实现熔断器
4.1.3. Zuul:网关组件,提供智能路由、访问过滤等功能
4.1.4. Archaius:外部化配置组件
4.1.5. Ribbon:客户端负载均衡的服务调用组件
4.1.6. Feign:基于 Hystrix 和 Ribbon 的声明式服务调用组件
4.2. Spring Cloud Config:配置管理工具,实现应用配置的外部化存储,支持客户端配置信息刷新,对配置内容加密解密等
4.3. Spring Cloud Bus:事件、消息总线,用于传播集群中的状态变化或事件以及触发后续的处理
4.4. Spring Cloud Security:基于 Spring Security 的安全工具包,为我们的应用程序添加安全控制
4.5. Spring Cloud Consul:封装了 Consul 操作,Consul 是一个服务发现与配置工具,可以与 Docker 无缝集成
4.6. Spring Cloud Gateway:基于程序响应的的智能可编程路由组件
4.7. Spring Cloud Stream:轻量级的事件驱动的微服务组件,简单声明式地使用消息中间件(kafka、RabbitMQ等)在各个boot项目之间收发消息