Spring Cloud为开发者提供了一种快速构建分布式应用的开发工具,这些微服务可以很好地工作在任何分布式环境下。SpringCloud的定位是为开发人员提供快速集成分布式系统中常用模块的开发工具,其中的模块以及集成这些模块的基础架构都属于SpringCloud的一部分。这里说的模块类似于插件,任何基于SpringCloud规则编写的插件都可以融入Spring Cloud中,所以可以说Spring Cloud是一个生态环境。
这么说来,任何有能力与想法的公司或组织都可以加入这个生态环境建设之中来,阿里巴巴便是其中的一个,便诞生了Spring Cloud Alibaba框架,它是国产的微服务开发一站式解决方案,与原有 Spring Cloud 兼容的同时对微服务生态进行扩展,通过添加少量的配置注解,便可实现更符合中国国情的微服务架构。
相比Spring Cloud的原生框架标准,包括几大模块,Spring Cloud Alibaba 提供了更完整的功能、更好用的API,同时在中文的加持下让复杂的微服务架构变得不再高不可攀,目前 Spring Cloud Alibaba 已经是事实上的国内微服务技术标准。
1. 服务注册发现:Eureka/Consoul/zookeeper
2. 远程服务调用:RestTemplate
3. 负载均衡:Ribbon
4. 断路器:Hystrix
5. 分布式消息:kafka/rabbitMQ
6. 配置中心:Config
7. 链路监控:Sleuth
8. 服务网关:Zuul
9. 消息总线: Bus
上面的模块多数是以 Netfilix Eureka 为代表的Spring Cloud 核心中间件,然而不行的是纷纷停止更新,再加上许多组件设计老旧,在性能上已无法满足互联网大厂的要求,国内迫切需要一套符合中国特色的微服务架构解决方案,所以便诞生了Spring Cloud Alibaba!
在Spring Cloud Alibaba这个生态中,已经有相对成熟的体系,包括(不限于这些)如下:
1. Dubbo 用于实现高性能Java RPC 通信;
2. Nacos 服务注册发现、配置管理、服务管理;
3. Sentinel 流量控制、熔断降级、系统负载保护;
4. RocketMQ 分布式消息系统,提供低延时的、高可靠的消息发布与订阅服务;
5. Seata 高性能微服务分布式事务解决方案;
6. Alibaba Cloud OSS 阿里云对象存储服务(Object Storage Service,简称 OSS);
7. Alibaba Cloud SchedulerX 阿里中间件团队开发的一款分布式任务调度产品,支持周期性的任务与固定时间点触发任务;
8. Alibaba Cloud SMS 覆盖全球的短信服务,友好、高效、智能的互联化通讯能力,帮助企业迅速搭建客户触达通道。
另外,相比于Spring Cloud Netflix 生态来说,到2020年archaus/hystrix/ribbon/zuul/turbine等都进入维护模式,意味着Spring Cloud团队不会再向这些模块中添加新的功能,更多精力在修复BUG。