Spring Cloud与Spring Boot的兼容性
通过前面的学习,大家应该知道Spring Cloud是基于Spring Boot开发的。Spring Boot专注于快速、方便集成单个微服务,而Spring Cloud是关注全局的服务治理框架,Spring Cloud依赖于Spring Boot。
由于Spring Cloud和Spring Boot都发布了多个版本,选择这些版本时需要考虑兼容性。接下来,通过一张表描述Spring Cloud与Spring Boot版本的匹配关系,具体如表1所示。
表1 Spring Cloud与Spring Boot版本的匹配关系
Spring Cloud版本 | Spring Boot版本 |
---|---|
Greenwich版本 | 兼容Spring Boot2.1.x |
Finchley版本 | 兼容Spring Boot2.0.x |
Dalston和Edgware版本 | 兼容Spring Boot1.5.x |
Camden版本 | 兼容Spring Boot1.4.x |
Brixton版本 | 兼容Spring Boot1.3.x |
Angel版本 | 兼容Spring Boot1.2.x |
注意:
在实际操作中选择Spring Boot与Spring Cloud版本时,没有限制必须使用某一版本,一般标注GA的版本都可以使用,但有一点要注意Spring Cloud版本一定要与Spring Boot版本兼容,以兼容为第一要务,本书使用的Spring Cloud版本是Greenwich SR,Spring Boot版本是2.1.。
多学一招:Spring Cloud与Dubbo的比较
Dubbo和Spring Cloud都属于微服务架构,其中Dubbo是阿里巴巴服务治理的核心框架,后期被当当网改良。Spring Cloud从命名我们就可以知道,它是Spring家族的产物,Spring社区的强大到可以说是Java企业界最有影响力的组织了,其中Netflix公司开源的整套微服务架构套件是Spring Cloud的核心。接下来,通过一张表比较Spring Cloud与Dubbo,具体如表2所示。
表2 核心组件的比较
核心要素 | Dubbo | Spring Cloud |
---|---|---|
服务注册中心 | Zookeeper | Spring Cloud Netflix Eureka |
服务通信方式 | RPC | REST API |
服务网关 | 无 | Spring Cloud Netflix Zuul |
断路器 | 不完善 | Spring Cloud Netflix Hystrix |
分布式配置 | 无 | Spring Cloud Config |
服务追踪 | 无 | Spring Cloud Sleuth |
在表2中,Spring Cloud的组件明显比Dubbo的组件更加完善,其原因就是因为Spring Cloud是Spring的产物,而且世界各国的程序员都在不断完善Spring Cloud,但Dubbo只有当当网在改良。除此之外,Dubbo的服务通信方式是基于TCP协议的RPC,而Spring Cloud基于REST。从代码依赖性来看,基于REST的Spring Cloud不存在代码级别的强依赖,相对于RPC更加灵活,具有能够更好处理微服务架构解耦性的特点。