我不是一个擅长长篇大论的人,根据网上整理了一些关于Eureka的理论知识分享一下,有错误请指出,新手上路,不喜勿喷

1. 服务注册(Register)
Eureka客户端启动时,向Eureka服务注册中心注册自己,提供自身的元信息,比如IP、端口、运行状况等
2. 服务发现(Fetch Registries)
Eureka客户端从服务注册中心获取注册表信息,并将其缓存到本地,客户端使用该信息查找到其他服务,从而实现远程调用;该注册表信息定期(每30秒)更新一次,在默认的情况下Eureka客户端使用压缩JSON格式来获取注册列表的信息
3. 服务续约(Renew)
Eureka客户端默认每30秒向服务注册中心发送一次心跳来续约,通过续约来告诉Eureka服务注册中心自己还活着,配置如下:
eureka:
  instance:
    lease-renewal-interval-in-seconds: 30

4. 服务剔除(Eviction)

默认情况下,Eureka服务注册中心在90秒没有收到Eureka客户端的服务续约,它会将其客户端实例从注册表中剔除,配置如下:
eureka:
  instance:
    lease-expiration-duration-in-seconds: 90
5. 服务下线(Cancel)
Eureka客户端在程序关闭时向服务注册中心发送下线请求,然后服务注册中心会将该实例从注册表中删除;该下线请求不会自动完成,需要调用服务下线方法
DiscoveryManager.getInstance().shutdownComponent()
6. 注册表缓存(Cache)
Eureka客户端启动一个定时任务,周期性的通过http请求去Eureka服务注册中心拉取最新的服务注册表,并缓存到本地,参考第2点服务发现(Fetch Registries)
开启缓存刷新,默认开启
eureka:
  client:
    fetch-registry: true
修改刷新周期,默认30秒
eureka:
  client:
    registry-fetch-interval-seconds: 30
注册中心集群配置下,客户端只想固定从某一个注册中心拉取注册表信息,配置如下
eureka:
  client:
     registry-refresh-single-vip-address: {注册中心server节点}
7. 全量更新注册表缓存
每次刷新注册表缓存任务执行时,都去server端获取所有注册表信息,这就是全量获取,全量获取没有参数可配置,当禁用了增量获取以后就会总是执行全量获取
8. 增量更新注册表缓存
在Eureka中,注册表实例发生改变的频率往往不会很大,如果每次的请求都去注册中心拉取所有的注册列表,会造成一定的宽带浪费和传输性能降低,配置开启如下
eureka:
  client:
     registry-refresh-single-vip-address: {注册中心server节点}

Q.E.D.

知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议

那一年,我也变成了光!!