天天看点

SpringCloud学习笔记-随笔服务注册服务同步服务续约

服务治理机制

  • 服务注册
  • 服务同步
  • 服务续约

服务注册

“服务提供者”在启动的时候会通过发送REST请求的方式将自己注册到

Eureka Server 上,同时带上自身服务的一些元数据信息。Eureka Server 接收到这个REST请求之后,将元数据信息存储在一个双层结构Map中,其中第一层的key是服务名,第二层的key是具体服务的实例名。

在服务注册时,需要确认一下eureka.client.register-with-eureka=true 参数是否正确,该值默认时true。若设置为false将不会启动注册操作。

服务同步

两个服务提供者同时注册到两个不同的注册中心上,也就是说,它们的信息分别被两个服务注册中心所维护。此时,由于服务注册中心之间因互相注册为服务,当服务提供者发送注册请求到一个服务注册中心时,它会将该请求转发给集群中相连的其他注册中心,从而实现注册中心之间的信息同步。通过信息同步,两个服务提供者的服务信息就可以通过这两台服务注册中心中的任意一台获取到。

服务续约

在注册完服务之后,服务提供者会维护一个心跳来持续告诉Eureka Server:“我还活着”,以防止Eureka Server的“剔除任务”将该服务实例从服务列表中排除出去,我们称该操作为服务续约(Renew)。

关于服务续约有两个重要属性,我们可以关注并根据需要来进行调整:

eureka.instance.lease-renewal-interval-in-seconds=30

eureka.instance.lease-expiration-duration-in-seconds=90

eureka.instance.lease-renewal-interval-in-seconds 参数用于定义服务续约任务的调用间隔时间,默认是30秒。eureka.instance.lease-expiration-duration-in-seconds参数用于定义服务的失效时间,默认是90秒。