一、流程简介

点击查看【processon】


二、设计要点

1、Eureka Client

1.1、状态变更监听

要点1:事件驱动,需要流控设计。
要点2:突发事件优先级高于定时调度。
image.png

2、Eureka Server

2.1、注册表数据结构

Map>>
注册中心数据结构.png

2.2、实例注册

要点1:获取最新实例信息

  • 对比Client与Server的 Dirty 时间戳,使用最新的实例

image.png
要点2:更新统计数据

  • 更新Client端数量
  • 更新最低续租阈值

image.png
要点3:支持外部状态覆盖

  • 实例状态可以被外部进程进行修改overriddenStatus

image.png

  • 首先检查实例是否为STARTINGDOWN,然后检查显式覆盖状态,接着再检查存在的租约的状态。

image.png