《小黑程序录》-SpringCloud五大组件

Posted 迪巴哥没八哥

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《小黑程序录》-SpringCloud五大组件相关的知识,希望对你有一定的参考价值。

《小黑程序录》

师父:小黑呀,还记得为师昨日传你之SpringCloud心法吗?

小黑:师傅,徒儿昨夜苦读心法,已将招式熟记于心。

师父:善哉,善哉,那为师今日出题,考考你这泼猿,你来给为师讲讲SpringCloud乃何方神圣?

小黑答曰:Cloud意为云,云轻且可为群,其可为微服务框架,实现配置管理、服务发现、断路、智能路由、微代理等之用。

师父:甚可,那你再给为师说说这cloud的五大神兵(组件)。

小黑:好的,师傅,徒儿为您一一解答。Cloud旗下有五大组件,分为:

Eureka—尽服务发现之用,Ribbon—尽客户端负载均衡所用,Hystix—尽断路之用,Zull—服务网关之用,Cloud Config—分布配置之用。

师父:孺子可教也!黑儿,你知其然,知其所以然耶?

小黑:师父,待徒儿为您娓娓道来。

Eureka:

在这里插入图片描述

组成:

师父,Eureka分为Eureka Server 和 Eureka Client,其中客户端又分为生产者Provider与消费者Consumer,生产者负责在服务上注册服务,消费者负责拉取消费服务。

功能:

其中,注册中心服务端对外提供了三个功能:

服务注册:服务提供者启动时,可通过Eureka Client 向Eureka Server 注册信息,Eureka Server会存储该服务的信息,Eureka Server内部有两层缓存机制维护整个注册表。

提供注册表:服务消费者调用服务时,如Eureka Client没缓存注册表,则从Eureka Server获取最新注册表

同步状态:Eureka Client通过注册、心跳机制和Eureka Server同步客户端状态

Ribbon:

师父我再给你讲下Ribbon(小黑喝了口水继续道),Ribbon主要提供客户侧的软件负载均衡算法。

Ribbon客户端提供了很多的配置选项,如连接超时,重试、重试算法等,其中内置了很多可定制的负载均衡组件。下面是一些负载均衡策略。

  1. 简单轮询负载均衡
  2. 加权响应时间负载均衡
  3. 区域感知轮询负载均衡
  4. 随机负载均衡

师父,师父,Ribbon还有许多功能,比如服务发现组件、序列化选择、异步批处理操作…

师父:得了,得了,别照本宣科了,你这么多懂得了多少,你给为师说说Hystrix这个组件。

小黑:Hystrix?(小黑有点犯晕)

师父:就是那个小刺猬呀,不对,是豪猪,也不对,反正…

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0dc9eEps-1625577480347)(C:\\Users\\Johnny\\AppData\\Roaming\\Typora\\typora-user-images\\1625573834854.png)]

小黑:哦,原来是这个呀,感觉和二师弟有点像,好的师父,我这就给你讲讲。

Hystrix:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yKGqaiWi-1625577480351)(C:\\Users\\Johnny\\AppData\\Roaming\\Typora\\typora-user-images\\1625574029082.png)]

师父,你看这个图,Hystrix其实就是一种保护机制,就像豪猪身上的刺一样,它有三种状态:关闭、半开、全开。

平时服务正常的时候它处于关闭状态,但是当某个服务请求失败太多的时候,它会开启,这个时候就不会去访问这个服务了,它就像得了新冠要处于隔离状态。

然后过了一段时间后,它会处于半开状态,它会试着放行一个请求,如果请求成功了,它会重新变成关闭状态,如果还失败就会处于全开启状态,循环往复依次执行这个过程,这样的机制可以保证服务的安全,防止服务雪崩情况的发生。

师父:不错不错,有内味了。

小黑:谢师父夸奖,最后面我给您讲讲Zuul和config吧。

Zull:

师父您昨天说zull就相当于看门神一样,是所有微服务架构的统一访问入口,客户端通过网关访问相关服务,客户端的访问可通过它进行路由过滤,它实现了请求路由、负载均衡、校验过滤、服务容错、聚合等功能。具体的使用可能要待课后徒儿去进行深入再向师父解答。
在这里插入图片描述

SpringConfig:

Spring Cloud Config项目就是提供配置的组件,是一个解决分布式系统的配置管理方案,包括Client与Server两部分,Server提供文件存储、以接口形式将配置文件内容提供出去,client通过接口获取数据、并依据数据初始化自己的的应用。他相关的pom依赖如下所示:

<dependencies>
   	<dependency>
		<groupId>org.springframework.cloud</groupId>
		<artifactId>spring-cloud-config</artifactId>
	</dependency>
	<dependency>
		<groupId>org.springframework.cloud</groupId>
		<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
	</dependency>
</dependencies>

师父,这就是我昨天所学到的知识了,还望师父指教。

只见师父仰天大笑,对着小黑的脑袋敲了三下,随后拂袖而去。

知乎/b站/csdn:迪巴哥没八哥

以上是关于《小黑程序录》-SpringCloud五大组件的主要内容,如果未能解决你的问题,请参考以下文章

《小黑程序录》-SpringCloud五大组件

《小黑程序录》-SpringCloud五大组件

springCloud五大核心组件(转载)

SpringCloud 五大组件基础介绍

SpringCloud 五大组件基础介绍

SpringCloud五大组件是什么