天天看点

【Spring Cloud】之 Eureka Client

文章目录

  • ​​Eureka Client​​
  • ​​一 职责​​
  • ​​(1)向 Eureka Server注册实例​​
  • ​​(2)向 Eureka Server续租,发送心跳​​
  • ​​(3)查询 Eureka Server拉取注册表​​
  • ​​(4)向 Eureka Server 取消租约​​
  • ​​二 源码解读​​
  • ​​(1)`defaultZone`解读​​

Eureka Client

一 职责

(1)向 Eureka Server注册实例

在这个方法里可看到

​DiscoveryClient(ApplicationInfoManager applicationInfoManager, final EurekaClientConfig config, AbstractDiscoveryClientOptionalArgs args, EndpointRandomizer randomizer)​

【Spring Cloud】之 Eureka Client

详细​

​register()​

【Spring Cloud】之 Eureka Client

(2)向 Eureka Server续租,发送心跳

在​

​DiscoveryClient.java​

​中可看到

开启了一个定时器,心跳定时器

【Spring Cloud】之 Eureka Client

心跳线程,每次调用​

​renew()​

​方法

【Spring Cloud】之 Eureka Client

​renew()​

​详情

若状态码为​

​NOT_FOUND​

​​, 则去注册​

​boolean success = register();​

【Spring Cloud】之 Eureka Client

(3)查询 Eureka Server拉取注册表

在​

​DiscoveryClient.java​

​中可看到

【Spring Cloud】之 Eureka Client

​CacheRefreshThread()​

​方法

【Spring Cloud】之 Eureka Client

(4)向 Eureka Server 取消租约

【Spring Cloud】之 Eureka Client

二 源码解读

(1)​

​defaultZone​

​解读

public static List<String> getServiceUrlsFromConfig(EurekaClientConfig clientConfig,  

                                                    String instanceZone,  

                                                    boolean preferSameZone) { 

    ... 

     

    List<String> serviceUrls = clientConfig.getEurekaServerServiceUrls(availZones[myZoneOffset]); 

     

    ... 

}