SpringCloud2之Eureka自我保护机制

Eureka 自我保护机制中的角色

EurekaClient 注册客户端
EurekaServer 注册中心服务端

为什么会产生Eureka自我保护机制:

是为了防止EurekaClient在可以正常运行的情况下,但是与EurekaServer网络不通(或超时)的情况下,EurekaServer将EurekaClient服务进行剔除,的一种保护机制.

在这里插入图片描述
自我保护机制:

默认情况下EurekaClient定时向EurekaServer端发送心跳包(也就是定时向EurekaServer端发送请求)

如果EurekaServer在一定时间内(默认是90秒)没有收到EurekaCilent发送的心跳包,便会从服务注册列表中剔除改服务。但是在短时间内(不超过90秒)丢失了大量的服务实例心跳,这时候EurekaServer便会开启自我保护机制,不会去剔除改服务。

EurekaServer 默认是开启自我保护机制
一般建议在本地测试,开发环境关闭自我保护机制,真实,生产环境开启自我保护机制

关闭自我保护机制在EurekaServer端加入下面配置即可关闭(我这里是前面项目的eureka_service)

server:
    #测试时关闭自我保护机制,保证不可用服务及时剔除
    enable-self-preservation: false
    #间隔2秒剔除
    eviction-interval-timer-in-ms: 2000

在这里插入图片描述

在服务提供者也就是EurekaClient的配置文件中加入以下配置(我这是是前面项目中的member_service)

   ##心跳检测与续约时间
          ##测试讲值设置小一点,保证服务关闭后注册中心能及时将服务剔除
        instance:
            ##EurekaClient 向注册中心发送心跳的时间间隔,(单位:秒)客户端告诉注册服务端自己会按照该规则发送心跳
          lease-renewal-interval-in-seconds: 1
          ##EurekaServer在收到最后一次心跳后等待的时间上限,(单位:秒),超过则剔除。客户端告诉注册服务端自己会按照该规则发送心跳
          lease-expiration-duration-in-seconds: 2

在这里插入图片描述
EurekaClient从EurekaServer 注册中心拉取服务列表的默认时间是 每30秒拉取一次,所以配置后不能立即生效,只要等一次30秒后,EurekaClient拉取到最新的服务列表,就可以看到效果

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值