天天看点

1.4微服务--SpringCloud介绍SpringCloud介绍

SpringCloud介绍

一、简介

Spring Cloud 是基于Spring Boot 的。Spring Boot主要的特点就是简化了开发和部署的过程,简化了Spring 复杂的配置和依赖管理,通过起步依赖和内置Servlet 容器能够使开发者迅速搭起一个Web 工程;

Spring Cloud 在开发部署上继承了Spring Boot 的一些优点,提高其在开发和部署上的效率;

Spring Cloud 的首要目标就是通过提供一系列开发组件和框架,帮助开发者迅速搭建一个分布式的微服务系统,通过包装其他技术框架来完成,实现了一套通过基于注解、Java 配置和基于模版开发的微服务框架;

Spring Cloud 提供了开发分布式微服务系统的一些常用组件,例如服务注册和发现、配置中心、熔断器、智能路由、微代理、控制总线、全局锁、分布式会话。

二、常用组件

1、 服务注册和发现组件Eureka

利用Eureka 组件可以很轻松地实现服务的注册和发现的功能,Eureka 组件提供了服务的健康监测,以及界面友好的UI ;

通过Eureka 组件提供的UI, Eureka 组件可以让开发人员随时了解服务单元的运行情况。另外Spring Cloud 也支持Consul 和Zookeeper,用于注册和发现服务

2、熔断组件Hystrix

Hystrix 是一个熔断组件,它除了有一些基本的熔断器功能外,还能够实现服务降级、服务限流的功能,另外Hystrix 提供了熔断器的健康监测,以及熔断器健康数据的API 接口;

Hystrix Dashboard 组件提供了单个服务熔断器的健康状态数据的界面展示功能, HystrixTurbine 组件提供了多个服务的熔断器的健康状态数据的界面展示功能

3、负载均衡组件Ribbon

Ribbon 是一个负载均衡组件,它通常和Eureka 、Zuul 、RestTemplate 、Feign 配合使用,Ribbon 和Zuul 配合,很容易做到负载均衡,将请求根据负载均衡策略分配到不同的服务实例中。Ribbon 和IRestTemplate 、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 和SpringCloud 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 、Red is 等消息组件, 利用Spring Cloud Stream 可以实现消息的接收和发送。

上述列举了一些常用的Spring Cloud 组件,一个简单的由Spring Cloud 构述的微服务系统,通常由服务注册中心Eureka、网关Zuul 、配置中心Config 和授权服务Auth 构成, 架构如阁所示:

1.4微服务--SpringCloud介绍SpringCloud介绍

三、项目预览

1)Spring Cloud Config

服务配置中心,将所有的服务的配置文件放到本地仓库或者远程仓库,配置中心负责读取仓库的配置文件,其他服务向配置中心读取配置。SpringCloud Config 使得服务的配置统一管理, 并可以在不人为重启服务的情况下进行配置文件的刷新。

2)Spring Cloud Netflix

通过包装了Netflix 公司的微服务组件实现的,也是SpringCloud 核心的核心组件,包括Eureka 、Hystrix 、Zuul 、Archaius 等。

3)Eureka :服务注册和发现组件

4)Hystrix :熔断器组件

Hystrix 通过控制服务的API 接口的熔断来转移故障,防止微服务系统发生雪崩效应。Hystrix 也能够起到服务限流和服务降级的作用。使用Hystrix Dashboard 组件监控单个服务的熔断器的状态,使用Turbine 组件可以聚合多个服务的熔断器的状态。

5)Zuul : 智能路由网关组件

Netflix Zuul 能够起到智能路由和请求过滤的作用,是服务接口统一暴露的关键模块,也是安全验证、权限控制的一道门

6)Feign : 声明式远程调度组件

7)Ribbon : 负载均衡组件

8)Archaius :配置管理API 的组件, 一个基于Java 的配置管理库, 主要用于多配置的动态获取

9)Spring Cloud Bus : 消息总线组件,常和Spring Cloud Config 配合使用,用于动态刷新服务的配置

10)Spring Cloud Sleuth :服务链路追踪组件,封装了Dapper 、Zipkin, Kibina 等组件,可以实时监控服务的链路调用情况

11)Spring Cloud Data Flow :大数据操作组件, Spring Cloud Data Flow 是SpringXD 的替代品,也是一个混合计算的模型,可以通过命令行的方式操作数据流

12)Spring Cloud Security : 安全模块组件,是对Spring Security 的封装,通常配合OAuth2使用来保护微服务系统的安全

13)Spring Cloud Consul :该组件是Spring Cloud 对Consul 的封装,和Eureka 类似,它是另一个服务注册和发现组件

14)Spring Cloud Zookeeper : 该组件是Spring Cloud 对Zookeeper 的封装,和Eureka 、Consul类似,用于服务的注册和发现

15)Spring Cloud Stream :数据流操作组件,可以封装Redis 、RabbitMQ 、Kafka 等组件,实现发送和接收消息等。

16)Spring Cloud CLI :该组件是Spring Cloud 对Spring Boot CLI 的封装,可以让用户以命令行方式快速运行和搭建容器。

17)Spring Cloud Task : 该组件基于Spring Task ,提供了任务调度和任务管理的功能

18)Spring Cloud Connectors :用于Paas 云平台连接到后端

————————————————————————————————————————————

内容来源---《深入理解Spring Cloud与微服务构建》

继续阅读