前一篇提到了咱们为何要替换PHP语言采用Java语言。而Java语言的框架选型上来讲有太多的选择,常见的有Dubbo,SpringCloud等。咱们选择了SpringCloud Alibaba。替换PHP语言到SpringCloudAlibaba是个大工程,主要是业务迁移部分。讨论之初我也确认过是否迁移原有的业务,获得的明确答复是 迁移。 那么这么来讲也就简单了,复杂的就是工期问题了。架构
SpringCloud Alibaba是Alibaba结合自身的微服务实践开源的一套微服务全家桶,在SpringCloud项目中进行孵化而且毕业。既然是SpringCloud的项目那么阿里云其实包含其商业化的产品。例如Nacos在阿里云就有其商业化的版本 MSE。同时SpringCloud Alibaba的相关组件是经历过双十一大促考验的产品。稳定性较高。框架
SpringCloud Alibaba是SpringCloud的子项目,其实不少相关的文章都提到了SpringCloud Alibaba与SpringCloud的关系,其中有不少的论点都比较有意思。你们能够去搜索一下。
SpringCloud Alibaba是依赖SpringCloud相关的标准实现的一套微服务的全家桶。结合阿里巴巴的相关实践与阿里云的相关服务实现的一些组件得以更快的实现相关产品业务。编辑器
Nacos实现了服务的配置中心与服务注册发现的功能,Nacos能够经过可视化的配置下降相关的学习与维护成本,实现动态的配置管理与分环境的配置中心控制。同时Nacos提供了基于http/RCP的服务注册与发现功能。分布式
Sentinel是面向分布式微服务架构的轻量级高可用的流控组件,以流量做为切入点,从流量控制,熔断降级,系统负载保护等维度帮助用户保证服务的稳定性。经常使用于实现限流、熔断降级等策略。微服务
RocketMQ基于Java的高性能、高吞吐量的消息队列,在SpringCloud Alibaba生态用于实现消息驱动的业务开发,常见的消息队列有Kafka、RocketMQ、RabbitMQ等,相关的比较文档能够自行去翻阅。性能
既然是微服务的产品,那么确定会用到分布式事物。Seata就是阿里巴巴开源的一个高性能分布式事物的解决方案。学习
Dubbo已经在圈内很火了,SpringCloud Alibaba基于上面提到的Nacos服务注册中心也一样整合了Dubbo。阿里云
SpringCloud Alibaba还有一些其余的组件选择,例如schedulerX、SMS、OSS等。可是因为其主要是阿里云的商业化产品就再也不过多的进行介绍。集成其商业化产品时才能用到。队列
SpringCloud Alibaba是基于SpringCloud标准由阿里巴巴实现的微服务全家桶,可插拔的方式实现组件的替换,在某些场景中咱们须要的组件能够自由进行选择。例如须要分布式链路跟踪咱们能够增长sleuth组件用于实现分布式链路跟踪业务等。
不少人提到SpringCloudAlibaba的商业问题,记得当年SpringCloudAlibaba推出初版的时候我也评论了...卖产品全家桶。不能否认是有那么一些,可是其实它自己的不少组件又不必定非要选择商业版本。这个能够自由进行选择。开发