Spring Cloud
什么是 Spring Cloud
- Spring Cloud 是基于 Spring Boot 实现的云应用开发工具
- 为分布式微服务架构提供一站式的解决方案
- 是多种微服务架构落地技术的集合
使用 Spring Cloud 的优势
使用 Spring Boot 开发分布式微服务时,面临很多问题
- 服务发现和注册:手动管理服务的注册和发现可能会变得复杂,容易出错
- 负载均衡:没有负载均衡,分发请求到多个服务实例很复杂
- 熔断和容错:没有熔断器的支持,故障可能会扩散到整个系统
- 配置管理:不使用配置中心,配置文件的管理和更新很复杂
Spring Cloud 组件
- 服务注册中心
- Eureka -> Zookeeper / Consul / Nacos
- 服务配置
- Config -> Nacos
- 服务总线
- Bus -> Nacos
- 服务调用
- Ribbon -> LoadBalancer
- 服务调用 2
- Feign -> OpenFeign
- 服务降级
- Hystrix -> Alibaba Sentinel
- 服务网关
- Zuul -> Gateway
Spring Cloud Alibaba
- 阿里开源的微服务开发组件
- 核心组件
- Sentinel:以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性
- Nacos:构建云原生应用的动态服务发现、配置管理和服务管理平台
- RocketMQ:开源的分布式消息系统,基于高可用分布式集群技术,提供低延时、高可靠的消息发布于订阅服务
- Seata:分布式事务解决方案
- 常和 Spring Cloud 一下组件搭配:
- OpenFeign:轻量级 RESTful 的 HTTP 服务客户端
- Gateway:用于网关服务,实现请求的转发和路由
- Ribbon:用于客户端负载均衡,将请求分发给不同的微服务实例