深入理解Spring|深入理解Spring Cloud与微服务构建【二】 - 2.2 Spring Cloud
2.2.1 简介 Spring Cloud 是基于 Spring Boot 的。 Spring Boot 是由 Pivotal 团队提供的全新 Web 框架, 它主要的特点就是简化了开发和部署的过程,简化了 Spring 复杂的配置和依赖管理,通过起 步依赖和内置 Serviet 容器能够使开发者迅速搭起一个 Web 工程。
2.2.2 常用组件 【深入理解Spring|深入理解Spring Cloud与微服务构建【二】 - 2.2 Spring Cloud】(1 )服务注册和发现组件 Eureka
利用 Eureka 组件可以很轻松地实现服务的注册和发现的功能。 Eureka 组件提供了服务的健 康监测,以及界面友好的 UI。通过 Eureka 组件提供的 UI, Eureka 组件可以让开发人员随时了 解服务单元的运行情况。另外 Spring Cloud 也支持 Consul 和 Zookeeper,用于注册和发现服务。
(2 )熔断组件 Hystrix
Hystrix 是一个熔断组件,它除了有一些基本的熔断器功能外,还能够实现服务降级、服 务限流的功能。另外 Hystrix 提供了熔断器的健康监测,以及熔断器健康数据的 API 接口。 Hystrix Dashboard 组件提供了单个服务熔断器的健康状态数据的界面展示功能 , Hystrix Turbine 组件提供了多个服务的熔断器的健康状态数据的界面展示功能。
(3 )负载均衡组件 Ribbon
Ribbon 是一个负载均衡组件,它通常和 Eureka、 Zuul、 RestTemplate、 Feign 配合使用。 Ribbon 和 Zuul 配合,很容易做到负载均衡,将请求根据负载均衡策略分配到不同的服务实例 中。 Ribbon 和I RestTemplate、 Feign 配合,在消费服务时能够做到负载均衡。
(4)路由网关 Zuul
路由网关Zuul 有智能路由和过滤的功能。内部服务的 API 接口通过Zuul 网关统一对外暴露, 内部服务的 API 接口不直接暴露,防止了内部服务敏感信息对外暴露。在默认的情况下, Zuul 和Ribbon 相结合,能够做到负载均衡、 智能路由。 Zuul 的过滤功能是通过拦截请求来实现的, 可以 对一些用户的角色和权限进行判断,起到安全验证的作用, 同时也可以用于输山实时的请求曰志。 上述的 4 个组件都来自于 Netflix 的公司 , 统一称为 Spring Cloud Netflix。
( 5) Spring Cloud Config
Spring Cloud Config 组件提供了配置文件统一管理的功能。Spring Cloud Config 包括 Server 端和 Client 端, Server 端读取本地仓库或者远程仓库的配置文件,所有的 Client 向 Server 读 取配置信息,从而达到配置文件统一管理的目的。通常情况下, Spring Cloud Config 和 Spring Cloud Bus 相互配合刷新指定 Client 或所有 Client 的配置文件。
( 6) Spring Cloud Security
Spring Cloud Security 是对 Spring Security 组件的封装, Spring Cloud Security 向服务单元 提供了用户验证和权限认证。一般来说,单独在微服务系统中使用 Spring Cloud Security 是很 少见的, 一般它会配合 Spring Security 0Auth2 组件一起使用,通过搭建授权服务,验证 Token 或者 JWT 这种形式对整个微服务系统进行安全验证。
( 7) Spring Cloud Sleuth
Spring Cloud Sleuth 是一个分布式链路追踪组件,它封装了 Dapper、 Zipkin 和 Kibana 等组 件,通过它可以知道服务之间的相互依赖关系,并实时观察链路的调用情况。
( 8) Spring Cloud Stream
Spring Cloud Stream 是 Spring Cloud 框架的数据流操作包,可以封装 RabbitMq、ActiveMq、 Kafka、 Redis 等消息组件, 利用 Spring Cloud Stream 可以实现消息的接收和发送。
文章图片
2.2.3 项目一览表
- Spring Cloud Config:服务配置中心,将所有的服务的配置文件放到本地仓库或者远程仓库,配置中心负责读取仓库的配置文件,其他服务向配置中心读取配置。 Spring Cloud Config 使得服务的配置统一管理,并可以在不人为重启服务的情况下进行配置 文件的刷新。
- Spring Cloud Netflix:它是通过包装了 Netflix 公司的微服务组件实现的,也是 Spring Cloud核心的核心组件,包括 Eureka、 Hystrix、 Zuul、 Archaius 等。
- Eureka:服务注册和发现组件。
- Hystrix:熔断器组件。 Hystrix 通过控制服务的 API 接口的熔断来转移故障,防止微 服务系统发生雪崩效应。另外,Hystrix 能够起到服务限流和服务降级的作用。使用 Hystrix Dashboard 组件监控单个服务的熔断器的状态,使用Turbine 组件可以聚合多 个服务的熔断器的状态。
- Zuul:智能路由网关组件。 Netflix Zuul 能够起到智能路由和请求过滤的作用,是服务接口统一暴露的关键模块,也是安全验证、权限控制的一道门。
- Feign: 声明式远程调度组件。
- Ribbon: 负载均衡组件。
- Archaius:配置管理 API 的组件, 一个基于 Java 的配置管理库, 主要用于多配置的动 态获取。
- Spring Cloud Bus: 消息总线组件,常和 Spring Cloud Config 配合使用,用于动态刷 新服务的配置。
- Spring Cloud Sleuth:服务链路追踪组件,封装了 Dapper、 Zipkin, Kibina 等组件,可以实时监控服务的链路调用情况。
- Spring Cloud Data Flow:大数据操作组件, Spring Cloud Data Flow 是 SpringXD的替 代品,也是一个混合计算的模型,可以通过命令行的方式操作数据流。
- Spring Cloud Security: 安全模块组件,是对 Spring Security 的封装,通常配合 0Auth2使用来保护微服务系统的安全。 口 Spring Cloud Consul:该组件是 Spring Cloud 对 Consul的封装,和 Eureka 类似,它是 另一个服务注册和发现组件。
- Spring Cloud Zookeeper: 该组件是 Spring Cloud对Zookeeper 的封装,和Eureka、Consul 类似,用于服务的注册和发现。
- Spring Cloud Stream:数据流操作组件,可以封装 Redis、 RabbitMQ、 Kafka 等组件,实现发送和接收消息等。
- Spring Cloud CLI:该组件是 Spring Cloud 对 Spring Boot CLI 的封装,可以让用户以命令行方式快速运行和搭建容器。
- Spring Cloud Task: 该组件基于 Spring Task,提供了任务调度和任务管理的功能。
- Spring Cloud Connectors: 用于 Paas 云平台连接到后端。
推荐阅读
- 深入理解Go之generate
- 考研英语阅读终极解决方案——阅读理解如何巧拿高分
- 由浅入深理解AOP
- Activiti(一)SpringBoot2集成Activiti6
- 逻辑回归的理解与python示例
- SpringBoot调用公共模块的自定义注解失效的解决
- 解决SpringBoot引用别的模块无法注入的问题
- 【1057快报】深入机关,走下田间,交通普法,共创文明
- 生发知识,带你深入了解
- 「按键精灵安卓版」关于全分辨率脚本的一些理解(非游戏app)