Spring Cloud框架的有序集合

[简介]

Spring cloud是一系列框架的有序集合。它基于Spring boot,简化了分布式系统基础设施的开发:服务注册、配置中心、消息总线、负载均衡、数据监控等。
Spring cloud将各种比较成熟的服务框架组合起来,通过Springboot风格进行封装,最终给开发者留出一套简单、易部署、易维护的分布式系统开发工具包。
Spring Cloud框架的有序集合

【组成】

Spring cloud 子项目,分两类:
1、对现有成熟框架,按照Spring boot方式封装和抽象
2、开发了一部分分布式系统的基础设施的实现。
对于我而言,我比较愿意做一只“红蚂蚁”,因此对现有成熟框架的封装和抽象目前已足够。
【现有成熟框架】
一、Spring Cloud Netflix
是对Netflix开发的一套分布式服务框架的封装,包括服务的发现和注册,负载均衡、断路器、REST客户端、请求路由等。
  包括的组件:
Eureka:服务治理组件,包含服务注册与发现【服务治理】
Hystrix:容错管理组件,实现了熔断器【服务容错保护】
Ribbon:客户端负载均衡的服务调用组件【客户端负载均衡】
Feign:基于Ribbon和Hystrix的声明式服务调用组件【声明式服务调用】
Zuul:网关组件,提供智能路由、访问过滤等功能【网关服务】
Archaius:外部化配置组件
二、Spring Cloud Config 【分布式配置中心】
  将配置信息中央化保存, 配置Spring Cloud Bus可以实现动态修改配置文件
三、Spring Cloud Bus
  分布式消息队列,是对Kafka, MQ的封装
四、Spring Cloud Security
  对Spring Security的封装,并能配合Netflix使用
五、Spring Cloud Zookeeper
  对Zookeeper的封装,使之能配置其它Spring Cloud的子项目使用
六、Spring Cloud Eureka
Spring Cloud Eureka 是 Spring Cloud Netflix 微服务套件中的一部分,它基于Netflix Eureka 做了二次封装,主要负责完成微服务架构中的服务治理功能。
Spring Cloud框架的有序集合

【理解】

一个大系统,分出多个模块后,会出现各种问题。Spring cloud为此提供了一整套的解决方案。

SpringCloud的基础功能:
服务治理: Spring Cloud Eureka
客户端负载均衡: Spring Cloud Ribbon
服务容错保护: Spring Cloud Hystrix
声明式服务调用: Spring Cloud FeignAPI
网关服务:Spring Cloud Zuul
分布式配置中心: Spring Cloud Config

SpringCloud的高级功能:
消息总线: Spring Cloud Bus
消息驱动的微服务: Spring Cloud Stream
分布式服务跟踪: Spring Cloud Sleuth
Spring Cloud框架的有序集合
① Eureka
1、咱们把系统已经分为了多个子系统(子模块),各个模块可能部署在不同的地方和环境中。子系统之间需要进行通讯,我们可能会想到websocket、httpclient、webservice等。
2、在SpringCloud中我们的服务治理框架一般使用的就是Eureka。
Eureka创建一个服务,将各个子系统的服务信息都注册到该服务上,由Eureka创建的这个服务来维护已经注册进来的信息。
3、各个子系统服务互相调用不再通过ip,而是通过注册的服务名来调用彼此。
4、Eureka专门用于给其他服务注册的称为Eureka Server(服务注册中心),其余注册到Eureka Server的服务称为Eureka Client。
5、Eureka Server(服务注册中心)一般这样配置:

Spring Cloud框架的有序集合
②Ribbon
我们的系统为了合理处理用户请求,会用到负载均衡,前面我们讲过Nginx负载均衡。
这里我们将Spring cloud也有负载均衡,只不过是客户端负载均衡Ribbon,默认的负载均衡策略是轮询,我们也是可以根据自己实际的需求自定义负载均衡策略的。
Spring Cloud框架的有序集合

③Hystrix
通过上面两种方式,我们实现了通过服务名来远程调用其他服务,还能够实现客户端负载均衡。但是遇到调用服务时延迟怎么办?
在用户量很大,请求有很多的高并发情况下。由于某个服务延迟了,导致所有请求都延迟。
这时候,Hystrix出现了。Hystrix实现了断路器、线程隔离等一些列保护功能。
FallBack:失败快速返回。当某个服务发生故障时,通过Hystrix的故障监控,给调用方返回一个错误的响应,而不是无休止的等待。这样就不会使得线程因故障服务被长时间占用不释放。
线程池隔离(资源/依赖隔离):它为每个依赖服务创建一个独立的线程池,如果某个依赖服务出现延迟高的情况,也只会影响对该依赖服务的调用而不会拖慢其他依赖的服务。
Spring Cloud框架的有序集合

④Feign
Feign整合了 Spring Cloud Ribbon 与 Spring Cloud Hystrix, 除了整合这两者的强大功能之外,它还提 供了声明式的服务调用(不再通过RestTemplate)。Feign是一种声明式、模板化的HTTP客户端。
Spring Cloud框架的有序集合
⑤Zuul
zuul是对外暴露的唯一接口相当于路由的是controller的请求,而Ribbonhe和Fegin路由了service的请求
zuul做最外层请求的负载均衡 ,而Ribbon和Fegin做的是系统内部各个微服务的service的调用的负载均衡
Spring Cloud框架的有序集合
⑥Config
每个服务都有自己的配置文件,既然是配置文件那肯定有改动了。
Spring Cloud Config项目是一个解决分布式系统的配置管理方案。
它包含了Client和Server两个部分:server提供配置文件的存储、以接口的形式将配置文件的内容提供出去;
client通过接口获取数据、并依据此数据初始化自己的应用。
Config就是将配置文件放到统一的位置管理(比如GitHub),客户端通过接口去获取这些配置文件。在GitHub上修改了某个配置文件,应用加载的就是修改后的配置文件。

Spring Cloud框架的有序集合

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值