Spring Cloud构建在Spring Boot基础之上,为开发者提供了快速构建一个完整的分布式平台的各种基础组件,并且这些基础组件都是可选的,可以像插件一样不断的对你的系统进行完善。Spring Cloud提供的组件相当丰富,涉及服务治理、配置中心、控制总线、断路器、智能路由、微代理、全局锁、决策竞选、分布式会话、集群状态、数据监控等等服务。
Spring Cloud的子项目,大致可分成两类,一类是对现有成熟框架”Spring Boot化”的封装和抽象,也是数量最多的项目;第二类是开发了一部分分布式系统的基础设施的实现,如Spring Cloud Stream扮演的就是kafka, ActiveMQ这样的角色。
Spring Cloud的子项目有出于Spring体系的,也有对一些成熟的开源产品的封装。下面介绍一些常用的子项目:
Spring Cloud Netflix
是Spring Cloud的核心组件(类似于Dubbo框架),是对多个Netflix OSS开源套件的整合,具体包括:
Eureka:服务治理组件,包含服务注册中心、服务注册、服务发现的机制;
Hystrix:容错管理组件,包含断路器功能;
Ribbon:实现客户侧的负载均衡服务调用组件;
Feign:基于Ribbon和Hystrix的声明式服务调用组件;
Zuul:服务网关,包含智能路由、请求过滤等功能;
Spring Cloud Config
配置中心服务,提供配置动态推送能力。可以基于git将配置信息中央化存储,支持配置信息动态修改后进行服务端推送,支持配置内容的加解密。
Spring Cloud Bus
分布式消息总线服务,是对Kafka、RabbitMQ等组件的封装,可用于消息传递、事件通知等。
Spring Cloud Cluster
针对ZooKeeper、Redis、Hazelcast、Consul的选举算法和通用状态模式的实现。
Spring Cloud Security
安全控制服务,是对Spring Security的封装,提供在Zuul代理中对OAuth2客户端请求的中继器。
Spring Cloud Consul
服务发现和配置管理服务。
Spring Cloud Zookeeper
对Zookeeper的封装,之能配置其它Spring Cloud的子项目使用。
Spring Cloud Stream
基于Redis、Rabbit、Kafka等消息中间件实现的消息数据流服务,可以通过简单的声明式模型进行消息的发送和接收。
Spring Cloud Sleuth
用于实现分布式系统调用链跟踪的组件。
Spring Cloud Data Flow
提供大数据操作工具,基于数据流模式。
......
相关文章