Eureka原理图
2020-08-26 10:35:15 0 举报
Eureka原理图
作者其他创作
大纲/内容
注册获取服务流程
6. 服务下线
2. 服务续约:Eureka Client 会每隔 30 秒发送一次心跳来续约。
1.服务注册
消费服务
Eureka Consumers服务消费者
Eureka Serve服务中心7. 自我保护
6. 服务下线:Eureka Client 在程序关闭时向 Eureka Server 发送取消请求。 发送请求后,该客户端实例信息将从 Eureka Server 的实例注册表中删除。
Eureka 使用操作内存,多级缓存的方式,保证了高可用,但是一致性差。
4. 30秒轮询
3. 服务剔除
服务A
Eureka Serve
Eureka Producer服务提供者
180秒自动过期
注册表内存
1. 注册服务
服务C
3. 再次注册服务
只读缓存
获取
4. 服务获取:Eureka Client 从服务器获取注册表信息,并将其缓存在本地。客户端会使用该信息查找其他服务,从而进行远程调用。该注册列表信息定期(每30秒钟)更新一次。
5.服务消费
1. 注册服务: 服务A 将自己的数据,注册到服务中心 注册表内存;2. 获取服务:消费服务到注册中心获取注册表数据, 先从只读缓存 (null) -> 读写缓存(null)-> 注册表内存, 获取注册表数据后本地缓存30秒,30秒后有新的服务获取后,继续到注册中心获取注册表数据;此时获取的是服务A的注册数据。3. 再次注册服务: 服务C 将自己的数据,注册到服务中心 注册表内存;注册表内存数据有变化,通知读写缓存过期,清空数据;4. 只读缓存30秒轮询 读写缓存,此时读写缓存为null, 只读缓存也变成null;5. 再次获取服务:消费服务到注册中心获取注册表数据, 先从只读缓存 (null) -> 读写缓存(null)-> 注册表内存,获取到服务A,C的这册数据
5. 再次获取服务
2. 获取服务
3. 服务剔除:Eureka Server 在 90 秒内没有收到 Eureka Client 的续约,Server 端会将实例从其注册表中删除。
读写缓存
5. 服务消费:当 Eureka Client 从注册中心获取到服务提供者信息后,就可以通过 Http 请求调用对应的服务;服务提供者有多个时,Eureka Client 客户端会通过 Ribbon 自动进行负载均衡。
8.服务同步
1. 服务注册:服务的提供者,将自身注册到注册中心,服务提供者也是一个 Eureka Client。它提供自身的元数据,比如服务名称, IP 地址、端口等数据。
7. 自我保护:Eureka Server 在运行期间会去统计心跳失败比例在 15 分钟之内是否低于 85%,如果低于 85%,Eureka Server 即会进入自我保护机制。(1) Eureka 不再从注册列表中移除因为长时间没收到心跳而应该过期的服务(2) Eureka 仍然能够接受新服务的注册和查询请求,但是不会被同步到其它节点上(即保证当前节点依然可用)(3) 当网络稳定时,当前实例新的注册信息会被同步到其它节点中
8.服务同步:集群之间定时通过 Replicate 同步注册表,每个 Eureka Server 都存在独立完整的服务注册表信息
2. 服务续约
4.服务获取
注册中心服务端
0 条评论
回复 删除
下一页