Eureka-注册中心

角色:

1 服务提供者

2 服务消费者  

3 服务注册中心 

a.高HA:支持数据持久化和服务集群

  b.数据一致性问题,集群中的所有客户应该看到同一份数据不能出现读写数据不一致

c.数据变更主动推送,当注册中心的数据发生变更时要及时通知客户端


关键性功能设计:

1)服务提供者在启动时,向注册中心注册自己提供的服务

2)消费者在启动时,像注册中心订阅自己所需要的服务,消费者刷新自己的本地缓存路由表

3)注册中心返回服务提供者的地址列表给消费者,如果有变更,注册中心推送变更数据给消费者,消费者更新自己的本地路由表

4)服务消费者根据得到的服务提供者地址列表,基于负载均衡算法选择其中一台server为自己提供服务


可靠性:

1)对等集群,一台宕机不影响服务使用

2)注册中心全部宕机,不影响服务,但是没办法注册新的服务或者下线服务

3)通过长连接心跳检测服务提供者的健康状态


一、eureka 

Eureka-注册中心

集群化

Eureka-注册中心

  • Service Provider会向Eureka Server做Register(服务注册)、Renew(服务续约)、Cancel(服务下线)等操作;

  • Eureka Server之间会做注册服务的同步,从而保证状态一致

  • Service Consumer会向Eureka Server获取注册服务列表,并消费服务。

在测试的时候,当关掉一台provider时,消费方并没有立即感知到,返回了错误。


Fetch Registries由Service Consumer调用,用来获取Eureka Server上注册的服务。为了提高性能,服务列表在Service Consumer会缓存一份,同时每30秒更新一次。做注册服务的同步,从而保证状态一致;

通过eureka.client.registryFetchIntervalSeconds设置同步时间间隔。


鉴于同步时间的滞后性,可以通过主动方式通知消费方更新缓存列表

https://www.cnblogs.com/yangzhilong/p/7161941.html eureka优雅下线