当前越来越多的应用开始使用微服务的框架进行开发,springcloud作为微服务框架的一种也被很多开发者所使用。容器服务Kubernetes平台天然支持微服务框架,所以也能很好的将springcloud框架部署起来供应用进行服务注册,服务发现等功能的使用。
当前我们在容器服务平台上使用springcloud时可能会遇到注册在eureka中的服务在后端服务不能提供服务时,存在较长的时间才能在注册中心中被解除的问题,这时服务处于不可用状态。遇到这种问题,我们可以通过调整以下参数来解决。
前提:
一个服务的deployment中至少有两个副本;
客户端配置参数修改:
lease-renewal-interval-in-seconds: 1
lease-expiration-duration-in-seconds: 1
服务端配置参数修改:
enable-self-preservation: false (不开启eureka的自我保护,因为同一个vpc下面,传输速度本来就很快)
eviction-interval-timer-in-ms: 1500 (eureka server清理无效节点的时间间隔,默认60000毫秒,这里设置为1.5秒清理一次)
通过以上配置,就可以解决当一个服务处于不可用时,能够很快在注册中心解除注册并能够提供不间断的服务。