Eureka服务治理基础架构下的三个核心要素
服务注册中心
服务提供者
服务消费者
很多时候,客户端既是服务提供者又是服务消费者
服务提供者
服务注册
服务提供者在启动的时候通过发送REST请求的方式将自己注册到EurecaServer上,同时带上自身元数据信息。 Eureca Server接收到这个REST请求之后,将元数据的信息储存在一个双层结构的Map中,第一层map的key为服务名,第二层的key为具体服务的实例名。
服务续约(Renew)
注册完服务之后,服务提供者会维持一个心跳告诉Eureca Server :“我是一个活着的健康实例”,从而防止Eureca Server的“剔除任务”从服务列表中排除该实例。 eureka.instance.lease-renewal-interval-in-seconds:心跳任务的调用时间,默认三十秒 eureka.instance.lease-expiration-duration0in-seconds:服务时效时间,默认九十秒
自我保护
EurekaServer会统计心跳失败的比例在15分钟之内是否低于85%,如果出现低于的情况,EurekaServer会将这些实例保护起来,让其不过期,但是这样会让客户端拿到已经挂掉的服务实例,这就要求客户端必须要有容错机制(请求重试、断路器等) eureka.server.enable-self-preservation=false : 关闭保护机制
Eureka Server 如何实现高可用?
机制:将自己作为注册中心向其他服务注册中心注册自己,这样就可以形成一组互相注册的服务注册中心。