SpringCloud是一系列框架的有序集合,为开发人员构建微服务架构提供了完整的解决方案。Spring Cloud根据分布式服务协调治理的需求成立了许多子项目,每个项目通过特定的组件去实现,下面我们讲解一下Spring Cloud 包含的常用组件以及模块。
(1)Spring Cloud Config:分布式配置中心,负责把配置放到远程服务器上,集中化管理集群配置。目前支持本地存储、Git和Subversion。
(2)Spring Cloud Netflix:核心组件,负责对多个Netflix OSS开源套件进行整合。
·Eureka:服务注册发现中心,基于REST服务的分布式中间件,主要用于服务管理。
·Hysrrix:熔断器,容错管理工具,旨在通过熔断机制控制服务和第三方库的节点,从而对延迟和故障提供更强大的容错能力。
·Ribbon:云端负载均衡器。支持多种负载均衡策略,可配合服务发现和熔断器使用,在客户端实现负载均衡。
·Feign:一个REST客户端,基于Ribbon和Hystrix的声明式服务调用组件。Zuul:服务网关,为微服务架构集群提供代理、过滤、路由等功能。
(3)SpringCloud Bus:事件、消息总线,用于在集群(例如配置变化事件)中传播状态变化,可与SpringCloud Config联合实现热部署。
(4)Spring Cloud Stream:数据流操作开发包,可与Redis、RabbitMQ、Kafka等架构进行消息发送与接收。
(5)Spring Cloud Sleuth:服务追踪框架,可以与Zipkin、Apache Htrace 和ELK等数据分析、服务跟踪系统进行整合,为跟踪服务、解决问题提供了便利。
下面我们来看一个基于Spring Cloud 的微服务架构,如图所示。