JAVA中serves关闭了怎么开启_Eureka Server剔除已关闭的Eureka Client节点的方法(Ribbon轮询)...

在使用Spring Cloud Netflix的时候,我们将两台Eureka Client节点服务注册到Eureka Server服务器端的时候,会在Eureka服务器管理界面出现这两台Client客户端节点,为什么要注册两台Client节点到Eureka Server中呢?当然是为了服务的高可用了,如图所示是端口分别为8888与9999的两个客户端节点注册好之后的效果:

57f72846de9b51c6b9a68f4c9146bcff.png

我们虽然将两个客户端节点注册到了Eureka Server中,即使我们的8888或者9999这两台服务中,有一台被关闭或因为网络故障无法访问,但是由于Eureka Server的自我保护机制,被关闭的一台服务仍然会显示在这个列表当中,无法被及时剔除,由于用户端使用了Ribbon的负载均衡访问(轮询访问),就会造成我们的网页或接口一会儿可以访问,一会儿又不能访问了,如图所示:

338ef9cbd2d4b15d0b18e9e346366c9d.png

那么我们如何解决Eureka Server不踢出已关停的节点的问题呢?

办法就是当我们的一台如Eureka Client 2服务因其它原因不能访问的时候,我们可以将Eureka Server中一台不能访问的节点及时清理掉,也就是我们(第一张图)列表中就不会显示两个节点了,这样Ribbon在做轮询访问的时候,就不会轮询到被清理掉的Eureka Client 2这个节点上了。

我们只需要分别在Eureka Server服务器端与Eureka Client两个客户端中的application.properties文件中加入如下配置即可,Ribbon用户端不需要添加任何配置,代码如下所示:Eureka Server端配置:

eureka.server.enable-self-preservation=false      //(设为false,关闭自我保护主要)

eureka.server.eviction-interval-timer-in-ms=5000  //清理间隔(单位毫秒,默认是60*1000)

Eureka Client端配置:

eureka.client.healthcheck.enabled=true   //开启健康检查(需要spring-boot-starter-actuator依赖)

eureka.instance.lease-renewal-interval-in-seconds=10   //租期更新时间间隔(默认30秒)

eureka.instance.lease-expiration-duration-in-seconds=30   //租期到期时间(默认90秒)

如果您的配置是application.yml形式的配置,则对应添加相同的代码即可:Eureka Server端配置:

eureka:

server:

enableSelfPreservation: false

evictionIntervalTimerInMs: 5000

Eureka Client端配置:

eureka:

instance:

leaseRenewalIntervalInSeconds: 10

leaseExpirationDurationInSeconds: 30

当我们的Eureka服务器端与客户端加入上述配置之后,我们的Eureka Server会每5秒钟清理一次服务列表,但是这样还不够,要在Eureka Client客户端再加入健康检查配置,这样才会真正的剔除已关闭的节点,如果客户端不添加配置,则起不到任何作用!

来源网站:太平洋学习网,转载请注明出处:http://www.tpyyes.com/a/javaweb/888.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值