- 核心功能:
- 分布式/版本化配置
- 服务注册合发现
- 服务路由
- 服务和服务之间的调用
- 负载均衡
- 断路器
- 分布式消息传递
- ......
- 技术体系
- 组件
- 服务注册与发现组件:Eureka、Zookeeper和Consul等
- Eureka是一个REST风格的服务注册与发现的基础服务组件
- 服务调用组件:Hystrix、Ribbon和OpenFeign等
- Hystrix能够使系统在出现依赖服务失效的情况下,通过隔离系统依赖服务的方式,防止服务级联失败,同时提供失败回滚机制,使系统能够更快地从异常中恢复
- Ribbon用于提供客户端的软件负载均衡算法,还提供了一系列完善的配置项如连接超时、重试等
- OpenFeign是一个声明式RESTful网络请求客户端,它使编写Web服务客户端变得更加方便和快捷
- 路由和过滤组件:包括Zuul和Spring Cloud Gateway
- Spring Cloud Gateway提供了一个构建在Spring生态之上的API网关,其旨在提供一种简单而有效的途径来发送API,并为他们提供横切关注点,如:安全性、监控指标和弹性
- 配置中心组件:Spring Cloud Config实现了配置集中管理、动态刷新等配置中心的功能。配置通过Git或者简单文件来存储,支持加解密。
- 消息组件:Spring Cloud Stream和Spring Cloud Bus
- Spring Cloud Stream对于分布式消息的各种需求进行了抽象,包括发布订阅、分组消费和消息分区等功能,实现了微服务之间的异步通信
- Spring Cloud Bus主要提供了服务间的事件通信(如刷新配置)
- 安全控制组件:Spring Cloud Security基于OAuth2.0开放网络的安全标准,提供了微服务环境下的单点登录、资源授权和令牌管理等功能
- 链路监控组件:Spring Cloud Sleuth提供了全自动、可配置的数据埋点,以收集微服务调用链路上的性能数据,并可以结合Zipkin进行数据存储、统计和展示
- 命令行工具Spring Cloud Cli
- 集群工具SpringCloud Cluster
- 服务注册与发现组件:Eureka、Zookeeper和Consul等