1)简介
SpringCloudAlibaba 致力于提供微服务开发的一站式解决方案。此项目包含开发分布式应用微服务的必须组件,方便开发者通过SpringCloud编程模式轻松使用这些组件来开发分布式应用服务。
依托Spring Cloud Alibaba,您只需要添加一些注解和少量配置,就可以将Spring Cloud应用接入案例微服务解决方案,通过阿里中间件来迅速搭建分布式应用系统。
https://github.com/alibaba/spring-cloud-alibaba/blob/master/README-zh.md
2)为什么使用
eureka停止维护了
SpringCloud的几大痛点
SpringCloud部分组件停止维护和更新,给开发带来不便。
SpringCloud部分环境搭建复杂,没有完善的可视化界面,我们需要大量的二次开发和定制
SpringCloud配置复杂,难以上手,部分配置差别难以区分和合理应用
SpringCloud Alibaba的优势:
阿里使用过的组件经历了考研,性能强悍,设计合理,现在开源出来大家用
成套的产品搭配完善的可视化界面给开发运维带来极大的便利
搭建简单,学习曲线低。
结合SpringCloud Alibaba我们最终的技术搭配方案:
SpringCloud Alibaba-Nacos:注册中心(服务发现者/注册)
SpringCloud Alibaba-Nacos:配置中心(动态配置管理)
SpringCloud-Ribbon:负载均衡
SpringCloud-Feign:声明式HTTP客户端(调用远程服务)
SpringCloud Alibaba-Sentinel:服务容错(限流、降级、熔断)
SpringCloud-Gateway:API网关(webflux编程模式)
SpringCloud-Sleuth:调用链监控
SpringCloud Alibaba -Seata:原Fescar,即分布式事务解决方案。
3)版本选择
由于SpringBoot1和SpringBoot2在Actuator模块的接口和注释有很大的变更,且Spring-Cloud-commns从1.x.x版本升级到2.0.0版本也有很大的变更,因此我们采取跟SpringBoot版本号一致的版本:
l 1.5.x版本适用于SpringBoot1.5.x
l 2.0.x版本适用于SpringBoot2.0.x
l 2.1.x版本适用于SpringBoot2.1.x
项目中的依赖(common项目中)
<dependencyManagement> <dependencies> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-alibaba-dependencies</artifactId> <version>2.1.0.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>