Eureka

@LoadBalanced
  • 加了 @LoadBalanced 之后,restTemplate.getForObject(url, String.class); 中的 url 就不能用 ip + port 了,要用 spring.application.name 中指定的名字;
@Bean
@LoadBalanced
public RestTemplate restTemplate(){
    return new RestTemplate();
}
LoadBalancerClient
  • 可以通过 LoadBalancerClient 获得 host 和 port;
@Autowired
private LoadBalancerClient eurekaClient;

private String method2(String message) {
    ServiceInstance choose = eurekaClient.choose("hello-service-provider");
    String hostname = choose.getHost();
    int port = choose.getPort();
    // ...
}
register | 服务注册
  • Eureka Client 在第一次心跳的时候,向 Eureka Server 注册,启动和第一次心跳之间是有时间差的;
  • 注册的时候,会提供诸多自身的元数据:主机名、端口、健康指标 URL 等;
Renew | 服务续约
  • Eureka Client 通过发送心跳进行续约;
  • 默认每 30s 汇报一次心跳;
  • Eureka Server 在 90s 之内收到心跳,就认为 Eureka Client 是活着的,然后重进计时 90s;如果没收到,就剔除服务;
  • 这些默认值不推荐修改,是 Netflix 在实践中总结的;
Cancel | 服务下线
  • Eureka Client 在优雅退出的时候,会发送 cancel 命令;
  • Eureka Server 在收到 canel 命令之后会删除该节点;
  • 在 kill -9 的时候不会发送这个命令;
注册表
  • Eureka Client 会缓存由 Server 获取的注册表信息;
  • Eureka Client 会定期更新注册表信息,默认 30s;
  • Eureka Client 会处理注册表的合并等内容;
Eureka 与 Zookeeper 在多节点的情况下的比较
  • Eureka 是 AP 系统,Eureka Client 到 Eureka Server 集群中的不可用节点获取信息,如果集群中还有活着的节点,就可以获取到;
  • Zookeeper 是 CP 系统,Zookeeper 在对一个节点的数据操作之后,会对所有的节点做广播,在广播结束之前,不论操作的是哪个数据,都不可能看到操作的数据;
Eureka 注册慢
  • 服务明明启动成功了,但就是调用不成功;
  • Eureka 注册慢的根本原因在于 Eureka 的 AP 特性,它不会按“随来随走” 的原则取设计系统,即不是注册了就立即可以用;
  • Eureka Client 延迟注册,默认 30s,就是因为 Eureka 在设计的时候,为了保证 AP,做了很多事情;
  • Eureka Server 的响应缓存,默认 30s,就这俩在极端的情况下就是 60s 了;
  • Eureka Server 的缓存刷新,默认 30s,在最极端的情况下,延迟会达到 90s;
  • 虽然这些数据都可以改,但是一般不建议改;
Eureka 自我保护
  • 就是在 Eureka 的节点上,操作一段时间后,会出现一段红字;
  • Eureka Server 会自动更新续约更新阈值;
  • Eureka Server 续约更新频率低于阈值则进入保护模式,在单节点的情况下,经常会进入保护模式;
  • 自我保护模式下,Eureka Server 不会剔除任何注册信息,除非明确的告知 Eureka Server 要剔除一个服务,就是服务下线的时候;哪怕服务已经不可用了,Eureka Server 也会认为服务是暂时不可用,可能过一会儿就可用了,这也是 AP 特性的一种体现;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值