Spring Cloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等操作提供了一种简单的开发方式。
Spring Cloud的首要目标是通过一系列开发组件和框架,帮助开发者迅速搭建一个分布式的微服务系统。
(1)常用组件
1.服务注册和发现组件Eureka
利用 Eureka 组件可以很轻松地实现服务的注册和发现的功能。 Eureka 组件提供了服务的健康监测,以及界面友好的UI。通过Eureka组件提供的UI,Eureka组件可以让开发人员随时了解服务单元的运行情况。
2.熔断组件Hystrix
具有熔断功能、实现服务降级、服务限流的功能。提供了熔断器的健康监测,以及熔断器健康数据的API接口。Hystrix Dashboard 组件提供了单个服务熔断器的健康状态数据的界面 展示功能 , Hystrix Turbine 组件提供了多个服务的熔断器的健康状态数据的界面展示功能 。
3.负载均衡组件Ribbon
通常和Eureka、Zuul、RestTemplate、Feign配合使用。Ribbon 和 Zuul 配合,很容易做到负载均衡,将请求根据负载均衡策略分配到不同的服务实例中 。 Ribbon 和IRestTemplate 、Feign 配合,在消费服务时能够做到负载均衡 。
4.路由网关Zuul
具有智能路由和过滤作用。Zuul 的过滤功能是通过拦截请求来实现的 , 可以对一些用户的角色和权限进行判断,起到安全验证的作用 , 同时也可以用于输出实时的请求日志。
5.Spring Cloud Config
提供了配置文件统一管理的功能。包括Server端和Client端。通常情况下, Spring Cloud Config 和 Spring Cloud Bus 相互配合刷新指定 Client 或所有 Client 的配置文件。
6.Spring Cloud Security
是对Spring Security组件的封装,向服务单元提供了用户验证和权限认证。一般它会配合 Spring Security 0Auth2 组件一起使用,通过搭建授权服务,验证 Token或者 JWT 这种形式对整个微服务系统进行安全验证。
它是一个分布式链路追踪组件,封装了Dapper、Zipkin和Kibana等组件,通过它可以知道服务之间的相互依赖关系,并实时观察链路的调用情况 。
8.Spring Cloud Stream
Spring Cloud Stream 是 Spring Cloud 框架的数据流操作包,可以封装 RabbitMq 、 ActiveMq 、Kafka 、Redis 等消息组件, 利用 Spring Cloud Stream 可以实现消息的接收和发送。