Eureka的几个小知识点总结

前几天接触了Spring Cloud,了解了Eureka,现在简单的对几个比较重要的点做一个小总结,算是小小的复习;

首先是Eureka的简单的工作原理,Eureka框架包含两个组件,一个是Eureka Server,一个是Eureka Client;

Eureka Server叫服务注册中心,每个服务启动后都要注册在这;

Eureka Client叫服务实例,分为服务提供者和服务消费者,服务之间是通过REST调用的,Eureka Client内置一个使用负载轮询算法的负载均衡器;

服务启动后,向Eureka注册,Eureka Server会将注册信息向其他Eureka Server进行同步,当服务消费者要调用服务提供者,向服务注册中心获取服务提供者地址,然后会将服务提供者地址缓存在本地,下次再调用时,则直接从本地缓存中取,完成一次调用;

Eureka Client会向Eureka Server发送心跳(默认是30秒发送一次),如果Eureka Server在多个心跳周期内没有收到某个服务的心跳(默认是90秒),Eureka就会将这个服务从服务注册表除名(心跳机制)

Eureka Client会将从Eureka Server查询到的服务注册的信息缓存到本地,这样即使Eureka Server宕机,也可以使用自己本机缓存的信息(缓存机制)

 

再说说Eureka的自我保护机制,Eureka在用心跳机制的时候,如果Eureka Server出现了故障,Eureka Client就不能继续把心跳发送到Eureka Server,Eureka Server会将超过90秒没有接到心跳的服务除名,但是

Eureka Client这个时候是正常的,

这就会出现"误杀"的可能,而这个自我保护机制就是为了防止出现这种情况;

那么自我保护机制到底是怎么做的呢?Eureka Server会通过判断是否存在大量没有续约成功的服务,来判断是否要开启自我保护机制,

默认情况下,Eureka Server配置的自我保护阈值是0.85,如果Eureka Server判断自己在一段时间内根据接收到心跳续约的服务低于阈值,那么Eureka Server就会开启自我保护机制,不再除名注册表的信息;

要是在保护期间有服务下线,则关闭自我保护机制,确保不可用的服务除名;

如果要关闭这个自我保护机制,可以在配置文件里加下面这行代码:

eureka:  server:    enable-self-preservation: false

 

 

最后再搬来一个Eureka的工作流程:

是这位大佬写的:https://blog.csdn.net/qwe86314/article/details/94552801

1、Eureka Server 启动成功,等待服务端注册。在启动过程中如果配置了集群,集群之间定时通过 Replicate 同步注册表,每个 Eureka Server 都存在独立完整的服务注册表信息

2、Eureka Client 启动时根据配置的 Eureka Server 地址去注册中心注册服务

3、Eureka Client 会每 30s 向 Eureka Server 发送一次心跳请求,证明客户端服务正常

4、当 Eureka Server 90s 内没有收到 Eureka Client 的心跳,注册中心则认为该节点失效,会注销该实例

5、单位时间内 Eureka Server 统计到有大量的 Eureka Client 没有上送心跳,则认为可能为网络异常,进入自我保护机制,不再剔除没有上送心跳的客户端

6、当 Eureka Client 心跳请求恢复正常之后,Eureka Server 自动退出自我保护模式

7、Eureka Client 定时全量或者增量从注册中心获取服务注册表,并且将获取到的信息缓存到本地

8、服务调用时,Eureka Client 会先从本地缓存找寻调取的服务。如果获取不到,先从注册中心刷新注册表,再同步到本地缓存

9、Eureka Client 获取到目标服务器信息,发起服务调用

10、Eureka Client 程序关闭时向 Eureka Server 发送取消请求,Eureka Server 将实例从注册表中删除

来源:https://www.icode9.com/content-4-752451.html

(0)

相关推荐

  • Eureka自我保护机制及服务离线

    在前几篇中<创建Eureka服务中心>我们介绍了Eureka的心跳检测并创建了Eureka服务中心,本篇将承接前面的内容讲解Eureka的自我保护机制以及离线服务. 自我保护机制 通过阅读 ...

  • springcloud学习(一)之Eureka

    前言 微服务原则上是应该有多个服务提供者的实例的,在通常情况下服务提供者的数量和分布往往是动态变化的,这样在传统的单体应用中的那种硬编码服务url进行远程调用的方式就不足取.服务注册中心就是为了解决服 ...

  • Spring Cloud Eureka 服务实现不停机(Zero

    问题 互联网产品高速迭代,通常伴随着高频次的版本发布.部署新版上线需要重启服务,直接 kill 服务进程可能会造成服务短暂不可用,从而影响到正在使用的用户. Spring Cloud 项目中一般会用到 ...

  • 初中化学实验小知识点快速记忆

    一.常用仪器和使用方法 (一)量取体积 量筒-----量取液体体积时,量筒必须放平稳.视线与量筒内液体凹液面的最低点保持水平. (二)称取质量 托盘天平 (用于粗略的称量,一般能精确到0.1克.) 注 ...

  • 公路工程小知识点

    什么是公路用地? 公路用地指公路两侧边沟(或者截水沟)以外不少于一米范围的土地.供公路修筑路基和排水系统.设置防护设施和服务设施,以及供公路修筑和养护取土.弃土.路侧绿化等使用的土地. 公路用地范围按 ...

  • 梁宝川: 1份anki笔记对应1个小知识点,好吗?

    每日写一篇文章的第2年197天 anki考研找梁宝川 很多小伙伴儿在导入anki笔记的过程当中. 为了能够加强自己对于知识的记忆. 选择是每一个问题,对应着一个非常详细的知识点. 精细化程度非常高. ...

  • 人教版小学一年级语文,常见经典小知识点练...

    人教版小学一年级语文,常见经典小知识点练习题:量词.词语归类.近反义词.加减偏旁.句子.词语分类汇总,非常有用,期中期末学习复习可用,给孩子珍藏吧

  • 常识积累!三大战役!每天学习一个小知识点...

    常识积累!三大战役!每天学习一个小知识点...

  • 画人难画手?来看看这个手部小知识点

    · 手的素描教程 · 画人难画手,难在比例和黑白灰的变化处理.很多初学者,都会把人手,画成"鸡爪".画手,一定要先从整体入手,多做对比,多调整. [版权声明]图文来源于网络,版权归 ...

  • 中考必考小知识点(1) 必须会系列

    中考必考小知识点(1) 必须会系列

  • 齐岳科普:关于3D水凝胶的一个小知识点

    3D水凝胶是通过化学共价键,物理相互作用或两者的组合交联的亲水性聚合物网络.由于聚合物链之间的交联和它们的亲水性,水凝胶实际上可以膨胀至其干燥物质的一百倍,甚至一千倍而不会溶解在水中.虽然水凝胶过去是 ...

  • 齐岳科普:关于聚氨酯水凝胶的小知识点

    描述: 水凝胶可由不同的亲水单体和疏水单体聚合而成.由于具有三维网络结构,水凝胶可以达到很大的相对分子质量,其网络结构由交联的化学键.氢键或范德华力形成.在溶胀时,溶液可以扩散到交联键之间的空间内.交 ...