1.Eureka Client 工作流程

image.png

2.DiscoveryClient


image.png
职责:

  • 注册服务实例到server中;
  • 发送心跳更新与server的租约;
  • 在服务关闭时从server中取消租约,服务下线;
  • 查询在server中注册的服务实例列表。

    构造函数

    构造函数,同时完成了client启动阶段的各项工作,包括:
  1. 相关配置的赋值;
  2. 备份注册中心的初始化;
  3. 拉取server段注册表信息;
  4. 注册前的预处理;
  5. 向server注册自己;
  6. 初始化心跳定时任务,缓存刷新和按需注册等定时任务。

    3.拉取注册表信息

    .fetchRegistry#
    全量:/eureka/apps/
    增量更新:/eureka/apps/delta/
    image.png

    4.服务注册

    .register#
    注册地址:/eureka/apps/${APP_NAME}

    5.初始化定时任务

    _._initScheduledTasks#
    TimedSupervisorTask
    为了监控自身应用信息或者状态的变化,并在发生变化时向server重新注册,eureka client设置了一个按需注册定时器。
    流程图:
    image.png

    按需注册定时任务:

  • 定时刷新服务实例的信息,检查应用状态的变化,实例信息改变时向server重新注册;
  • 注册状态改变监听器,应用状态发生变化时,刷新服务实例信息。

image.png

五、服务下线

_._shutdown#
/eureka/${APP_NAME}/${INSTANCE_INFO_ID} DELETE