spring cloud 之 Eureka 知识点

时间:2021-08-30 19:50:53
  • Eureka原理
  1. 当服务消费者想要调用服务提供者的API时,首先会在注册中心中查询当前可用的实例的网络地址(也可能是定时查询可用实例,本地缓存好可用服务列表),然后再使用客户端负载均衡,命中到其中一个服务提供者实例并请求该实例。下图展示了客户端发现方式的网络拓扑图:

spring cloud 之 Eureka 知识点

  1. 当服务启动的时候,将会向注册中心注册服务;停止时,向注册中心注销服务;当服务注册到注册中心后,注册中心将会与服务通过心跳机制定时刷新,如果一定时间内注册中心没有收到某实例的心跳,就会将相应实例踢出。
  • 问题:eureka server 红色大字提示:
    EMERGENCY! EUREKA MAY BE INCORRECTLY CLAIMING INSTANCES ARE UP WHEN THEY'RE NOT. RENEWALS ARE LESSER THAN THRESHOLD AND HENCE THE INSTANCES ARE NOT BEING EXPIRED JUST TO BE SAFE.
    原因:自我保护机制。Eureka Server在运行期间,会统计心跳失败的比例在15分钟之内是否低于85%,如果出现低于的情况(在单机调试的时候很容易满足,实际在生产环境上通常是由于网络不稳定导致),Eureka Server会将当前的实例注册信息保护起来,同时提示这个警告。
    出处:http://blog.51cto.com/simon0816/1946156

  • 做这个例子时,http://blog.didispace.com/spring-cloud-starter-dalston-2-2/
    报错:Request URI does not contain a valid hostname
    原因:在 eureka client 的配置项"spring.application.name"中,不要用下划线(_)
    建议:所有配置项"spring.application.name",都不要有下划线