背景:
产品高速迭代,通常随同着高频次的版本公布。部署新版上线须要进行验证,不想让服务间接被客户端关注到(即服务默认注册到eureka,并且是UP状态)并进行调用。
起因解析:
所有服务的状态保留在注册核心 Eureka Server 中。一个服务要想获取其余服务的实例列表和状态,须要定时从 Eureka Server 中获取并缓存下来,默认工夫30秒发动一次,缓存Server 状态申请由 Eureka Client 发动,而不是基于长连贯或者 Eureka Server 被动推送,所以无奈立刻晓得其余服务状态变更。
解决方案:
1、上线状态置为 OUT-OF-SERVICE,验证通过后手动更改为UP(举荐)2、上线状态为UP,手动更改状态为 OUT-OF-SERVICE (不举荐)3、间接勾销服务主动向erueka注册(须要改源码,不举荐)
这里咱们举荐第一种计划,具体操作如下:
1、批改配置文件,批改eureka.instance.initial-status:out-of-service 2、做验证,swagger 或者 mq 只生产一条生产等,形式不具体开展说了,这里不是本文重点3、验证通过,手动批改服务状态为UP,验证不通过,也不会有流量进来.
上线形式如下:
http://【eureka服务ip:port】/eureka/apps/【服务名】/【实例名】/status?value=UP批改为大家公司罕用的形式即 : curl -X PUT "http://admin:root123@eureka.test.com/eureka/apps/DEMO-PROVIDER/172.16.XX.XXX:8080/status?value=UP"