考虑这个设置:
enableSelfPreservation: false
其中一个实例(比如srv#1inst#1,服务#1的实例)发送了一个心跳,但它没有到达Eureka服务器。
AFAIK,在服务器端按顺序执行以下操作:
现在在实例(srv#1inst#1)方面:
AFAIK,驱逐和登记不会立即发生。 Eureka服务器定期为两个任务运行单独的调度程序。
我有一些与此过程相关的问题:
答案 0 :(得分:0)
qiangdavidliu中的one of the issues of eureka's GitHub repository回答了这个问题。
为了完整性,我在这里添加他的解释。
在我具体回答问题之前,这是有关心跳和逐出的一些高级信息(基于默认配置):
Timeout
或RejectedExecution
),但这应该非常少。让我尝试回答您的问题:
序列正确吗?如果没有,我想念什么?
A:经过上述说明,序列是正确的。
关于驱逐和注册计划程序的假设是否正确?
A:逐出由内部调度程序处理。注册由处理程序线程处理以进行注册请求。
服务#2的实例在ServerStep2之后立即向服务器请求新的注册表副本。
- 将srv#1inst#1保留在新的注册表副本中,因为尚未将其逐出吗?
- 如果是,将srv#1inst#1标记为UP还是DOWN?
A:这里有几件事:
来自srv#1inst#1的InstanceStep2的重试请求在ServerStep2之后立即到达服务器。
- 注册表会立即更改吗?
- 这将如何影响对service#2请求新注册表的响应?它将如何影响驱逐调度程序?
A:再说几件事: