当前位置 博文首页 > xzh_blog:Eureka实现原理和自我保护机制简单介绍
Eureka是在Java语言上,基于Restful API开发的服务注册与发现组件,由Netflix开源。Eureka遵循AP原则。目前Eureka仅开源到1.X版本,2.X版本已经宣布闭源。
Server不进行选举,没有Leader,是一种去中心化的架构,节点都是对等的,通过相互注册提高可用性,通过数据拷贝的方式实现数据的最终一致性。
在集群环境中,如果某台Server节点宕机,Client的请求会自动切换到新的Server节点上,当宕机的服务器重新恢复后,Eureka会再次将其纳入到服务器集群管理之中。
默认情况下,如果Server在一定时间内没有接收到某个服务实例的心跳(默认周期为30秒),Server将会注销该实例(默认为90秒)。如果在15分钟内超过85%的节点都没有正常的心跳,那么Eureka就认为客户端与注册中心出现了网络故障,启动自我保护机制:
自我保护机制是Eureka遵循AP原则、保证可用性的关键,只要有一台Server还在就能对外提供服务,但是不保证强一致性,Server内部数据可能不是最新的。
cs