本文主要分享 应用实例的覆盖状态属性。
这里要注意下,不是应用实例的状态( status
),而是覆盖状态( overridestatus
)
调用 Eureka-Server HTTP Restful 接口 apps/${APP_NAME}/${INSTANCE_ID}/status
对应用实例覆盖状态的变更,从而达到主动的、强制的变更应用实例状态。注意,实际不会真的修改 Eureka-Client 应用实例的状态,而是修改在 Eureka-Server 注册的应用实例的状态。
在深入理解Eureka Server覆盖状态(九)这一篇文章中,我们介绍了Eureka Server的覆盖状态,但是覆盖状态设置了之后Eureka在使用的时候都会通过getOverriddenInstanceStatus()这个方法来计算实例的最终状态,那么他计算的规则是什么呢,本篇文章主要讲的就是这个。
判断状态的规则如下:
步骤说明:
1.使用DownOrStartingRule做匹配,匹配客户端传过来的instanceIInfo的status是否等于DOWN或STARTING , 如果是,则匹配成功
2.OverrideExistsRule规则, 判断该实例是否存在覆盖状态,如果存在,则直接返回覆盖状态,