学科分类
目录
Spring Cloud

Spring Cloud微服务架构的组件

Spring Cloud是一系列框架的有序集合,为开发人员构建微服务架构提供了完整的解决方案,它利用Spring Boot开发的便利性巧妙地简化了分布式系统基础设施的开发,如服务注册发现、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署,下面我们讲解一下Spring Cloud包含的常用组件以及模块。

(1)Spring Cloud Config:配置管理工具包,负责把配置放到远程服务器,集中化管理集群配置,目前支持本地存储、Git以及Subversion。

(2)Spring Cloud Netflix:核心组件,负责对多个Netflix OSS开源套件进行整合。

● Eureka:服务注册中心,基于REST服务的分布式中间件,主要用于服务管理。

● Hystrix:熔断器,容错管理工具,旨在通过熔断机制控制服务和第三方库的节点,从而对延迟和故障提供更强大的容错能力。

● Ribbon:云端负载均衡,支持多种负载均衡策略,可配合服务发现和断路器使用,在客户端实现负载均衡。

● Feign:一个REST客户端,基于Ribbon和Hystrix的声明式服务调用组件。

● Zuul:服务网关,为微服务集群提供代理,过滤,路由等功能。

(3)Spring Cloud Bus:事件、消息总线,用于在集群(例如配置变化事件)中传播状态变化,可与Spring Cloud Config联合实现热部署。

(4)Spring Cloud Stream:数据流操作开发包,封装了与Redis、RabbitMQ、Kafka等发送接收消息。

(5)Spring Cloud Sleuth:服务追踪框架,可以与Zipkin、Apache Htrace和ELK等数据分析,服务跟踪系统进行整合,为服务跟踪、解决问题提供了便利。

下面看一个基于Spring Cloud的微服务架构图,如图1所示。

图1 Spring Cloud架构图

多学一招:Nginx与Ribbon的比较

Nginx与Ribbon同是负载均衡,但是也有很大不同。

(1)Nginx基于C语言,快速,性能高,负载均衡、反向代理,代理后端服务器。隐藏真实地址,防火墙,不能外网直接访问,安全性较高,属于服务器端负载均衡,即请求由Nginx服务器端进行转发。

(2)Ribbon是从Eureka注册中心服务器端上获取服务注册信息列表,缓存到本地,然后在本地实现轮询负载均衡策略,即在客户端实现负载均衡。

点击此处
隐藏目录