核心组件
·Sentinel:以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。
·Nacos:一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。
·RocketMQ:一款开源的分布式消息系统,基于高可用分布式集群技术,提供低延时的、高可靠的消息发布与订阅服务。. Seata:分布式事务解决方案。
除了上面这些之外,使用Spring Cloud Alibaba的时候一般会搭配下面这些Spring Cloud组件一起使用:
·OpenFeign:轻量级RESTful的HTTP服务客户端,用于替代已经进入停更维护状态的Feign (Netflix Feign)
· Gateway:用于网关服务,实现请求的转发和路由。
·Ribbon:用于客户端负载均衡,将请求分发给不同的微服务实例。
Spring Cloud Gateway(网关)
SpringCloud Gateway是SpringCloud 的一个全新项目,为了取代Netfix Zuul
为了提升网关性能,Spring Cloud Gateway 基于 Spring WebFlux。Spring WebFlux使用Reactor 库来实现响应式编程模型,底层基于Netty实现同步非阻塞的I/O
Spring Cloud Gateway 的目标是不仅提供统一的路由方式,并且基于Filter链的方式提供了网关基本的功能,例如:安全,监控/指标和限流
OpenFeign
Feign主要用于远程服务调用,OpenFeign是SpringCloud官方基于Feign开发的,用于替代Feign。OpenFeign底层基于Ribbon,很多功能依赖Ribbon,不过2020后的版本底层脱离了Ribbon。
Ribbon/LoadBalancer(负载均衡)
Ribbon是一个客户端负载均衡框架,主要用于将请求动态地分发给不同的服务实例,以实现负载均衡和故障转移的功能。
Ribbon是Spring Cloud Netfix中的一员,不过目前停止维护。LoadBalancer是SpringCloud官方提供的负载均衡组件,用于替代Ribbon。
Sentinel(限流熔断)
Sentinel以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。Sentinel可以简单的分为sentinel核心库和Dashboard。核心库不依赖Dasthboard,但是结合Dashboard可以取得最好的效果。
·核心库(Java客户端)︰不依赖任何框架/库,能够运行于Java 8及以上的版本的运行时环境,同时对Dubbo / Spring Cloud等框架也有较好的支持
·控制台(Dashboard) : Dashboard主要负责管理推送规则、监控、管理机器信息等。
Nacos(服务发现和配置管理)
Nacos是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理的平台
Nacos的命名由三部分组成:
一张图看懂Nacos:
RocketMQ(消息队列)
RocketMQ是阿里开源的一款云原生“消息、事件、流”实时数据处理平台,借鉴了Kafka,已经成为Apache顶级项目。
RocketMQ的核心特性︰
·云原生:生与云,长与云,无限弹性扩缩,K8s友好
·高吞吐:万亿级吞吐保证,同时满足微服务与大数据场景。
·流处理:提供轻量、高扩展、高性能和丰富功能的流计算引擎。
·金融级:金融级的稳定性,广泛用于交易核心链路。
·架构极简:零外部依赖,Shared-nothing架构。
·生态友好:无缝对接微服务、实时计算、数据湖等周边生态。
Seata(分布式事务)
Seata是一款开源的分布式事务解决放啊按,致力于提供高性能和简单易用的分布式服务。提供了AT、TCC、SAGA、和XA事务模式。
Seata分TC、TM和RM三个角色,TC(Server端)为单独服务端部署,TM和RM(Client端)由业务系统集成。