场景

SpringCloud中集成Eureka实现服务注册(单机Eureka构建):

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

在上面进行服务注册时,在Eureka的界面上会看到提示:

EMERGENCY! EUREKA MAY BE INCORRECTLY CLAIMING INSTANCES ARE UP WHEN THEY'RE NOT. RENEWALS ARE LESSER THAN THRESHOLD AND HENCE THE INSTANCES ARE NOT BEING EXPIRED JUST TO BE SAFE.

注:

博客:
霸道流氓气质的博客_CSDN博客-C#,架构之路,SpringBoot领域博主
关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。

实现

1、Eureka的自我保护

保护模式主要用于一组客户端和Eureka Server之间存在网络分区场景下的保护。一旦进入保护模式

Eureka Server将会尝试保护其服务注册表中的信息,不再删除服务注册表中的数据,也就是不会注销任何微服务。

如果看到如上的提示,就是进入了保护模式。

2、导致原因

为了防止Eureka Client可以正常运行,但是与Eureka Server网络不通情况下,Eureka Server不会立刻将Eureka Client服务剔除。

某时刻某个微服务不可用了,Eureka不会立刻清理,依旧会对微服务的信息进行保存。

3、什么是自我保护模式

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

但是当网络故障发生(延时、卡顿、拥挤)时,微服务与Eureka Server之间无法正常通信,以上行为就变得非常危险,因为

微服务本身其实是健康的,此时不应该注销这个微服务。Eureka通过“自我保护模式”来解决这个问题,当Eureka Server

节点在短时间内丢失过多客户端时(可能发生了网络分区故障),那么这个节点就会进入自我保护模式。

在自我保护模式中,Eureka Server 会保护服务注册表中的信息,不再注销任何服务实例。

它的设计哲学就是并可保留错误的服务注册信息,也不可能盲目注销任何可能健康的服务实例。

4、禁用自我保护机制

首先在Eureka Server的服务端的配置文件中进行关闭

将eureka.server.enable-self-preservation设置为false,并调小时间间隔为2秒

完整配置文件

server:port: 7001eureka:instance:hostname: eureka7001.com #eureka服务端的实例名称client:register-with-eureka: false     #false表示不向注册中心注册自己。fetch-registry: false     #false表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务service-url:#集群指向其它eureka#defaultZone: http://eureka7002.com:7002/eureka/#单机指向自己defaultZone: http://eureka7001.com:7001/eureka/server:#关闭自我保护机制,保证不可用服务被及时踢除enable-self-preservation: falseeviction-interval-timer-in-ms: 2000

然后修改Eureka Client的配置文件

将Eureka客户端向服务端发送心跳的时间间隔(默认是30秒)修改为1秒。

lease-renewal-interval-in-seconds

将Eureka服务端在收到最后一次心跳后等待时间上限(默认是90秒)超时将剔除服务时间修改为2秒。

lease-expiration-duration-in-seconds

完整配置文件

server:port: 8001spring:application:name: cloud-payment-servicedatasource:type: com.alibaba.druid.pool.DruidDataSource            # 当前数据源操作类型driver-class-name: org.gjt.mm.mysql.Driver              # mysql驱动包url: jdbc:mysql://localhost:3306/springclouddemo?useUnicode=true&characterEncoding=utf-8&useSSL=falseusername: rootpassword: 123456eureka:client:#表示是否将自己注册进EurekaServer默认为true。register-with-eureka: true#是否从EurekaServer抓取已有的注册信息,默认为true。单节点无所谓,集群必须设置为true才能配合ribbon使用负载均衡fetchRegistry: trueservice-url:#单机版defaultZone: http://localhost:7001/eureka#defaultZone: http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eurekainstance:instance-id: payment8001#访问路径可以显示IP地址prefer-ip-address: true#Eureka客户端向服务端发送心跳的时间间隔,单位为秒(默认是30秒)lease-renewal-interval-in-seconds: 1#Eureka服务端在收到最后一次心跳后等待时间上限,单位为秒(默认是90秒),超时将剔除服务lease-expiration-duration-in-seconds: 2mybatis:mapperLocations: classpath:mapper/*.xmltype-aliases-package: com.badao.springclouddemo.entities    # 所有Entity别名类所在包

5、修改之后可以看到Eureka中明显的提示

Eureka的自我保护机制与如何禁用相关推荐

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

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

  2. eureka之自我保护机制

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

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

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

  4. Eureka自我保护机制

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

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

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

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

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

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

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

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

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

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

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

最新文章

  1. Activiti——工作流程-核心API(二)
  2. python给太阳花添加茎叶_python_bloom--循环语句练习
  3. 全球及中国造纸行业十四五产量调研与运营能力状况分析报告2022版
  4. C++ 在屏幕上用星号打印菱形
  5. 2017 百度杯丶二月场第一周WP
  6. 魅族mx5游戏模式小熊猫_您不知道的5大熊猫技巧
  7. 网页设计工资一般多少_初级会计师就业前景怎么样?工资一般多少?
  8. 用贪心算法来解决沙袋装箱问题
  9. tomcat ---- 启动,关闭和配置等等
  10. 老板说,我请你来,不是叫你无脑拷贝的,竟然在线上搞出这么大的一个BUG......
  11. python 利用栈实现复杂计算器
  12. 【BZOJ 4503】4503: 两个串 (FFT)
  13. Linux串口驱动分析read
  14. 美好消费品牌榜单TOP 5公布;迪卡侬集团正式宣布参展第四届进博会 | 美通企业日报...
  15. 高通 mdm9607编译以及audio框架
  16. 基于深度学习的单目2D/3D姿态估计综述(2021)
  17. 艺术与实在中的递归 递归和原始递归函数——读哥德尔之六
  18. hp服务器进智能配置是红屏,illegal opcode 红屏报错(hp 360 G6安装win2003)问题解决方法...
  19. 大学c语言基础知识必备大全,大学 C语言基础知识.ppt
  20. 二进制转四进制计算机,二进制换算(进制转换计算器)

热门文章

  1. java30秒规则_每30秒运行一次cron
  2. 南昌人武学院计算机室,【志愿者日记】南昌大学人武学院:用行动感染身边的人...
  3. 【题集】AVL树、伸展树、红黑树、二叉查找树、替罪羊树的时间复杂度
  4. FreeSWITCH软电话互打
  5. anbox 使用情况_如何在Linux PC上启动并运行Anbox?
  6. 美团{青龙面板可跑项目之一}保姆教程
  7. 文献阅读与写作(一)
  8. 结婚戒指为什么要带在无名指上
  9. SpingBoot/JAVA实现给图片加水印功能(通过thumbnailator库)
  10. 误差棒到底是个什么棒?到底棒不棒!