我是靠谱客的博主 简单汽车,最近开发中收集的这篇文章主要介绍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拉取到最新的服务列表,就可以看到效果

最后

以上就是简单汽车为你收集整理的SpringCloud2之Eureka自我保护机制的全部内容,希望文章能够帮你解决SpringCloud2之Eureka自我保护机制所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部