概述
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自我保护机制所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复