一、核心工作流程

二、核心组件解析
1. 自动配置引擎
- 入口:@EnableEurekaServer 引入 EurekaServerMarkerConfiguration,创建标记Bean Marker
- 触发条件:EurekaServerAutoConfiguration 检测到 Marker 存在时激活
- 关键Bean初始化:
java
@Bean
public PeerAwareInstanceRegistry peerAwareInstanceRegistry() // 注册表存储
@Bean
public EurekaServerBootstrap eurekaServerBootstrap() // 启动引导
@Bean
public PeerEurekaNodes peerEurekaNodes() // 集群节点管理
2. 注册表管理(InstanceRegistry)
- 数据结构:双层 ConcurrentHashMap
java
Map<String, Map<String, Lease<InstanceInfo>>> registry
= new ConcurrentHashMap<>();
// 外层Key: appName (如USER-SERVICE)
// 内层Key: instanceId (如host:port)
- 写操作(注册/心跳/下线):
- 获取 写锁 (lock.writeLock().lock())
- 更新后触发 集群同步事件 (replicateToPeers())
3. 集群同步(PeerEurekaNodes)
- 同步机制:基于 HTTP Batch Replication 的异步批处理
4. 自我保护机制(Self-Preservation)
- 触发条件:心跳丢失比例 > 阈值(默认85%)
- 实现逻辑:
java
if (expectedRenews > minRenewsThreshold) {
preserve = true; // 进入保护模式
}
- 保护模式行为:
- 停止剔除过期实例
- 客户端仍可注册新实例
三、请求处理链路(以服务注册为例)

四、关键特性实现
1、多级缓存优化
2、增量抓取(Delta)
3、租约清理(Eviction)
- 定时任务扫描过期实例(默认60s)
- 优化建议:
yaml
eureka:
server:
eviction-interval-timer-in-ms: 3000 # 缩短至3秒