我们先来看看Eureka的集群架构图
Eureka的工作流程/工作原理
1,服务注册。
Eureka Server作为服务注册中心,为微服务架构提供服务注册功能。微服务节点启动后,会在Eureka中进行注册,Eureka Server中会存储所有的可用微服务节点信息。
2,Eureka客户端。
Eureka Client是一个java客户端,用于简化与Eureka Server的交互。客户端同时也具备一个内置的、使用轮询算法的负载均衡器。
3,心跳检测。
在应用启动后,客户端将会向Eureka Server发送心跳(默认为30秒,我们项目配置的是30秒)。Eureka Serber如果在多个心跳周期内没有收到某个微服务节点的心跳,将会剔除该节点(默认90秒,我们项目配置的是90秒)。
4,集群数据同步。
Eureka Server之间通过复制的方式来进行数据同步。
5,客户端缓存功能。
Eureka Client具有缓存功能,即使所有的Eureka Server都挂掉,客户端依然可以利用缓存中的信息消费其他服务的API。
6,清理失效节点。
7,自我保护模式。
自我保护模式是指在网络出现异常的情况下,由于Eureka Server无法收到客户端的心跳续约,Eureka Server会判断该节点不可用,但其实该节点可能是正常的,可用的。为了避免误删,Eureka Server引入了自我保护模式。一旦Eureka Server发现当前收到的心跳总次数小于心跳阈值的85%(默认值),就会进入自我保护模式,此时Eureka Server不会清理任何节点。直到Eureka Server收到的心跳总次数大于等于心跳阈值的85%。
自我保护模式的设计哲学是:在不确定节点是否可用的情况下,尽可能保留节点
作者:鸿雁长飞鱼龙潜跃
转载链接:https://www.jianshu.com/p/557a9feeaae3
网友评论