SpringCloud 是一个基于 SpringBoot 实现微服务架构的开发工具。它为微服务中涉及到的配置管理、服务治理、熔断、路由、微代理、消息总线、全局锁、决策竞选、分布式会话和集群状态管理等操作提供了一个简单的开发方式。
SpringCloud 包含多个开发的子项目:
SpringCloud Config:配置管理工具,支持使用git存储配置内容,可以使用它实现应用配置的外部化存储,并支持客户端配置信息刷新、加密/解密配置内容等。
SpringCloud Netflix:核心组件,对多个 Netflix OSS 开源套件整合。
a. Eureka:服务治理组件,包含服务注册中心、服务注册与发现机制的实现。
b.Hystrix:容错管理组件,实现断路器模式,帮助服务依赖中出现延迟和故障提供强大的容错能力。
c.Ribbon:客户端负载均衡服务调用组件
d.Fegin:基于 Ribbon 和 Hystrix 的声明式服务调用组件。
e.Zuul:网关组件,提供智能路由、访问过滤等功能。
f.Archaius:外部化配置组件。
SpringCloud Bus:事件、消息总线,用于传播集群中的状态变化或事件,以触发后续的处理,比如用来动态刷新配置等。
SpringCloud Cluster:针对 Zookeeper、Redis、Hazelcast、Consul 的选举算法和通用状态模式的实现。