SpringCloudAlibaba (I):概述和重要组件

上一篇文章提到了为什么要用Java语言代替PHP语言。在选择Java语言的框架上有太多的选择,比如Dubbo,SpringCloud等等。我们选择了SpringCloudAlibaba。把PHP语言替换成SpringCloudAlibaba是个大工程,主要是业务迁移部分。在讨论之初,我也确认了是否迁移原有业务,明确的答案是迁移。那么说起来容易,复杂的是时间限制。

SpringCloud阿里巴巴是阿里巴巴结合自身微服务实践开源的一套微服务家庭桶,在SpringCloud项目中孵化毕业。既然是SpringCloud的项目,阿里云其实也包含了其商业化的产品。比如Nacos在阿里云就有它的商业版MSE。同时,SpringCloud阿里巴巴的相关组件都是经历过双十一考验的产品。稳定性高。

SpringCloud阿里巴巴是SpringCloud的子项目。其实很多相关文章都提到了SpringCloud阿里巴巴和SpringCloud的关系,很多都很有意思。可以去搜一下。

SpringCloud阿里巴巴是一套依赖于SpringCloud相关标准的微服务架构。将阿里巴巴的相关实践和阿里云的相关服务结合起来实现的一些组件,可以更快的实现相关产品业务。

Nacos实现了服务配置中心和服务注册发现的功能。Nacos可以通过可视化配置降低相关的学习和维护成本,实现动态配置管理和子环境配置中心控制。同时,Nacos提供了基于http/RCP的服务注册和发现功能。

Sentinel是一个轻量级、高可用的流量控制组件,用于分布式微服务架构。它以流量为出发点,从流量控制、熔丝降级、系统负载保护等维度帮助用户保证服务的稳定性。诸如电流限制和熔丝退化的策略通常被使用和实现。

RocketMQ是基于Java的高性能、高吞吐量的消息队列,用于在SpringCloud阿里巴巴生态系统中实现消息驱动的业务开发。常见的消息队列有Kafka、RocketMQ、RabbitMQ等。,以及相关对比文档可以自己看。

既然是微服务的产品,肯定会用分布式的东西。Seata是阿里巴巴高性能分布式事物的开源解决方案。

Dubbo在圈内已经很受欢迎了,SpringCloud阿里巴巴也在上面提到的Nacos服务注册表的基础上整合了Dubbo。

SpringCloud阿里巴巴也有一些其他的组件选项,比如schedulerX,SMS,OSS等等。但因为主要是阿里云的商业产品,所以不会过多介绍。只有在整合其商业产品时才能使用。

SpringCloud阿里巴巴是阿里巴巴基于SpringCloud标准实现的微服务家庭桶。组件可以以可插拔的方式替换。在某些场景下,我们需要的组件可以自由选择。比如我们需要分布式链接跟踪,我们可以添加sleuth组件来实现分布式链接跟踪服务。

很多人提到了SpringCloudAlibaba的商业问题。记得SpringCloudAlibaba推出第一版的时候,我也评论过...卖掉所有家当。不可否认有一些,但实际上它本身的很多组件并不一定要选择商业版。你可以自由选择这个。