1. 主要功能
服务限流降级
服务注册与发现
分布式配置管理
消息驱动能力
分布式事务
Spring Cloud Alibaba 使用 @GlobalTransactional 注解,高效并且零入侵地解决分布式事务问题。
2. 主要组件
Sentinel
Sentinel 把流量作为切入点,从流量控制、熔断降级、系统负载等多个维度保障服务的稳定性。Sentinel 主要分为两部分,客户端在我们的程序中集成,控制台基于 Spring Boot 开发,打包后直接运行。利用 Sertinel 流量控制功能可以对网关、服务进行过载保护,另一个核心功能是熔断降级,与 Hystrix 一致。Nacos
Nacos 是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。主要功能有注册中心和配置中心。Nacos 可以代替 Eureka 和 Apollo。RocketMQ
分布式消息系统,基于高可用分布式集群技术,提供低延时、高可靠的消息发布与订阅服务。使用消息队列可以让服务之间更加解耦,还可以进行流量削峰,还可以用事务消息来实现分布式事务。Dubbo
Java RPC 框架,Spring Cloud Alibaba 体系中,服务之间的通信可以使用 Dubbo 进行远程调用。Rest 的优势:通用性强、无语言限制、调试方便,但一般都是 JSON 格式,报文较大,Dubbo 是二进制传输,性能更好。Spring Cloud Alibaba 中可以将 Dubbo 和 Feign 结合使用,即服务可以暴露 Dubbo 协议,也可以暴露 Rest 协议,调用方选择对应的协议进行调用,对于性能要求高的使用 Dubbo,其它的使用 Rest。Seata
分布式事务解决方案,提供了 AT、TCC 等事务模式。
3. 技术选型推荐
- 服务注册与发现:Nacos
- 服务熔断限流:Sentinel
- 服务通信调用:Feign
- 配置中心:Nacos
- 服务网关:Spring Cloud Gateway
- 分布式事务:Seata
- 消息队列:RocketMQ
- 调用链监控:Sleuth+Zipkin
- 分布式任务调度:XXL-JOB