Tips:生产环境中不建议关闭 Eureka 的自我保护模式

什么是保护模式

  保护模式,主要用于一组客户端 和 Eureka Server 之间存在网络分区场景下的保护。一旦进入保护模式,Eureka Server 将会尝试保护其服务注册表中的信息,不再删除服务注册表中的数据,也就是不会注销任何微服务实例。

  当我们在 Eureka Server 服务首页中,看到有如下这段提示,则说明此时 Eureka Server 已经进入了保护模式。

Eureka Server 为什么会进入保护模式

  默认情况下,如果 Eureka Server 在一定时间内没有收到某个微服务实例的心跳,Eureka Server 便会将该实例注销。 (默认是90s)

  但是 当网络分区发生故障(延迟、卡顿、拥挤)时,微服务与 Eureka Server 之间是无法正常通信的,在这种情况下微服务本身其实是健康的,本来是不应该注销这个服务的,此时 Eureka 便会通过 “自我保护模式” 来解决这个问题。

  Eureka 的自我保护机制,就是 CAP 原则中的 AP 分支。即满足:可用性分区容错性

CAP 原则又称 CAP 定理,指的是在一个分布式系统中,一致性(Consistency)、可用性(Availability)、分区容错性(Partition tolerance)。CAP 原则指的是,这三个要素最多只能同时实现两点,不可能三者兼顾。

如何禁用自我保护

  在 Eureka 中,自我保护模式默认是 开启 的。此处也只是来演示一下如何关闭。生产环境中是不建议关闭 Eureka 的自我保护模式

1.Eureka Server 端操作

添加如下配置信息:

eureka:server:#关闭自我保护机制,保证不可用服务被及时剔除enable-self-preservation: false#清理无效节点的时间间隔,默认60000毫秒,即60秒 (此处时间间隔设置为2s)eviction-interval-timer-in-ms: 2000
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

此时,在启动 Eureka Server 时,便会看到一条鲜明的提示信息。

2. Eureka Client 端操作

添加如下配置信息:

eureka:instance:# Eureka客户端向服务端发送心跳的时间间隔,单位为妙(默认是30s)lease-renewal-interval-in-seconds: 1# Eureka服务端在收到最后一次心跳后的等待时间上限,单位为秒(默认90s),超时将移除服务lease-expiration-duration-in-seconds: 2
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

到此处,配置就已经全部完成。

3.测试结果


  这种情况下,我们手动将该微服务停止,Eureka Server 便会在 2s 超时过后,将其移除服务。不会给它任何的机会,当遇到网络 延迟、卡顿、拥挤 时,这种操作显然是不友好的。

所以大多数情况下,还是建议不要关闭 Eureka 的自我保护模式。


博主写作不易,加个关注呗

求关注、求点赞,加个关注不迷路 ヾ(◍°∇°◍)ノ゙

我不能保证所写的内容都正确,但是可以保证不复制、不粘贴。保证每一句话、每一行代码都是亲手敲过的,错误也请指出,望轻喷 Thanks♪(・ω・)ノ

Eureka的自我保护机制相关推荐

  1. eureka自我保护时间_spring cloud中微服务之间的调用以及eureka的自我保护机制详解...

    上篇讲了spring cloud注册中心及客户端的注册,所以这篇主要讲一下服务和服务之间是怎样调用的 基于上一篇的搭建我又自己搭建了一个客户端微服务: 所以现在有两个微服务,我们所实现的就是微服务1和 ...

  2. eureka之自我保护机制

    eureka自我保护机制 默认情况下如果eureka server在90秒内没有收到一个服务实例的心跳,会注销该实例.固定时间内如果大量服务实例被注销,就可能威胁到整个微服务架构的稳定性,为了保证服务 ...

  3. Eureka的自我保护机制与如何禁用

    场景 SpringCloud中集成Eureka实现服务注册(单机Eureka构建): SpringCloud中集成Eureka实现服务注册(单机Eureka构建)_霸道流氓气质的博客-CSDN博客 在 ...

  4. 【SpringClould】 eureka 的自我保护机制

    文章目录 1.概述 2.原因 3.禁止自我保护 3.1 server配置 3.2 client 3.3 测试 1.概述 保护模式主要用于一组客户端和Eureka Server之间存在网络分区场景下的保 ...

  5. eureka配置_F版本SpringCloud 5—Eureka集群和自我保护机制

    源码地址:https://gitee.com/bingqilinpeishenme/Java-Tutorials 前言 上篇文章中,通过代码搭建了Eureka注册中心和客户端,是Eureka的简单应用 ...

  6. SpringCloud Eureka自我保护机制介绍及配置

    概述:谈到Eureka的自我保护机制时,我们需要知道其中一些客户端和服务端的概念.比如客户端的心跳发送时间间隔.服务续约时间:服务端的服务剔除时间间隔.阈值更新时间间隔. 客户端心跳发送时间间隔(eu ...

  7. Eureka自我保护机制

    本文来说下Eureka自我保护机制 文章目录 为什么要有自我保护机制 重要变量 变量更新 Eureka-Server初始化 cancle主动下线 客户端注册 定时器 自我保护机制 开启 解除 本文小结 ...

  8. eureka自我保护时间_Eureka的自我保护机制

    前言 首先对Eureka注册中心需要了解的是Eureka各个节点都是平等的,没有ZK中角色的概念, 即使N-1个节点挂掉也不会影响其他节点的正常运行. 默认情况下,如果Eureka Server在一定 ...

  9. Eureka的初理解【服务注册与发现、高可用集群、自我保护机制、与Zookeeper的比较】

    Eureka的初理解 什么是Eureka? Eureka[读音要知道怎么读] Netflix 在设计 Eureka 时,遵循的就是AP原则(CAP文章下面有介绍). Eureka是Netflix的一个 ...

  10. 深入理解Eureka 自我保护机制(五)

    对自我保护的理解: 自我保护的作用是保证服务的稳定性,也就是怕过多的服务心跳失败,是Eureka服务端的问题,而不是客户端的问题,所以为了避免将正常的服务剔除,所以加了保护机制,当然保护机制的话也有可 ...

最新文章

  1. python 字符串内容
  2. 研究速递:老年人的心智能力不一定在衰减,抗干扰的能力会更强
  3. 声音匹配_如何调节人声音色方法如下
  4. 统一沟通成本节约数据表
  5. DL之DNN:自定义2层神经网络TwoLayerNet模型(封装为层级结构)利用MNIST数据集进行训练、预测
  6. Linux服务器部署邮件服务器详细操作文档
  7. 再议指针和引用的一些事情吧
  8. php 获取header_php 输出404状态码
  9. UE3 GPU性能和分析
  10. 深圳车联网云服务商“麦谷科技”获5000万Pre A轮融资
  11. Cross-entropy 和 Binary cross-entropy
  12. Rstudio如何让显示界面的字体更大一些
  13. 2022年计算机软件水平考试程序员(初级)练习题及答案
  14. iphone之参数知识(一)
  15. Android实现滑动的几种方式
  16. java this 逸出_this引用逸出
  17. Python之Socket自动重连
  18. 计网day12 奈氏准则和香农定理
  19. 容斥原理 —— 求1~n有多少个数与k互质(二进制算法详细解释模板)
  20. 服务器防御基础(常见的几种攻击手段以及应对方式)

热门文章

  1. python+django高速公路收费管理系统的设计
  2. 2018年06月 Godaddy自助建站 国内购买域名转入
  3. 黄金实盘点评:价格不宜回调过深
  4. Spark机器学习实验
  5. 关于openlaeyrs获取谷歌卫星地图的无偏瓦片
  6. Lambda-Stream应用
  7. GDSOI 2016 T2 星际穿越
  8. 【Golang】JSON Marshal Unmarshal
  9. 【雅思大作文考官范文】——第九篇:‘CCTV essay’
  10. 投稿经验分享之二:国际EI会议(可检索)