美文网首页
01 Eureka 相关-03 源码分析

01 Eureka 相关-03 源码分析

作者: notatent | 来源:发表于2019-04-29 19:16 被阅读0次

1 Application Service

1.1 register

Application Service
把自己注册到 Eureka Server 上去,用 jersey client 和 Eureka Server 通信

eureka-client:


1.png

eureka-server:


2.png

1.2 renew

Application Service
每隔 30 秒发 heartbeat 给 Eureka Server 通知他自己还活着

eureka-client:


3.png

eureka-server:


4.png

1.3 cancel

服务shutdown,通知 Eureka Server 删除 service’s instance

eureka-client:


5.png

eureka-server:


6.png

1.4 get registry

Eureka clients fetches the registry information from the server and caches it locally.
分成 全量获取和增量获取。
Eureka Client 启动时,首先执行一次全量获取进行本地缓存注册信息
Eureka Client 在初始化过程,创建获取注册信息线程,固定间隔(30秒)向 Eureka Server 发起获取注册信息( fetch ),刷新本地注册信息缓存。

eureka-client:


7.png

eureka-server:


8.png

2 Application Client

2.1 get registry

  同上 get registry

3 Eureka Server

3.1 大致流程:

Eureka-Server启动 大致流程:


9.png

3.2 register

Eureka-Server register流程:
Eureka-Server 是 AP
   Eureka Server 集群不区分主从节点,所有节点完全对等。
   Eureka Client 可以向任意 Eureka-Client 发起任意读写操作,Eureka-Server 将操作复制到其它的 Eureka-Server 以达到最终一致性。

Eureka-Server启动 具体流程:


10.png

3.3 replicateToPeers

"大致流程" 图中的 replicateToPeers 方法,请求方可以是 Eureka Client 发起请求,也可以是 Eureka Server 发起同步请求。
处理的 Action 类型: Heartbeat, Register, Cancel, StatusUpdate, DeleteStatusOverride;
以 Action.register为例

发起 replicateToPeers:


11.png

接收 replicateToPeers:


12.png
处理 replicateToPeers 响应结果:
"发起 replicateToPeers" 图中: 处理批量提交同步操作任务的响应,handleBatchResponse
13.png

3.4 版本控制

注册时:
  注册 应用实例 InstanceInfo时,比较请求的应用实例 与 Eureka Server 端该应用实例的 lastDirtyTimestamp 大小。
  请求方可能是 Eureka Client发起注册请求,也可能是 Eureka Server 发起同步请求
  只有请求方 > Eureka-Server 方时,覆盖 Eureka-Server 方应用实例。
  最终更新应用实例 lease 的更新时间。

Heartbeat 最终一致性
  Eureka Client 每30秒发送 Heartbeat 给 Eureka Server,告知对方自己存活。
  多次执行失败,达到 lease 时效 90 秒,删除应用实例。

相关文章

网友评论

      本文标题:01 Eureka 相关-03 源码分析

      本文链接:https://www.haomeiwen.com/subject/puuunqtx.html