Eureka个人理解以及与Zookeeper的区别

Eureka介绍:

Eureka是一个服务注册中心,它将所有可以提供的服务都注册到它这里进行一个管理,其他调用者需要调用的时候,就从这个服务中心去获取,然后进行调用,这样就可以很好的避免了服务之间的一个直接调用问题,以及后续的一个扩展,故障转移等。服务中心这么重要的组件,一旦挂掉了将会影响全部的服务,项目中一般搭建Eureka集群来保证他的一个高可用性,一般使用多个节点的方式

Eureka原理:

原理就是当服务启动后,向Eureka进行注册,Eureka Server会将注册消息向其他的Eureka Server进行同步,当服务消费者需要调用服务提供者时,会向注册中心获取服务提供者的地址,然后将地址缓存到本地,下次调用的时候,直接从本地缓存中去取,完成一次调用,当注册中心检测到服务提供者宕机或者网络不可用的时候,会向订阅者发布服务提供者的状态,订阅过的服务消费者会更新本地缓存。

Eureka与Zookeeper的区别:

同作为服务中心,它们之间的区别要从这个CAP理论说起,C是一致性,A是可用性,P是分区容错性,作为分布式系统,分区容错性是一定存在的,但是我们不能同时拥有C跟A。所以Zookeeper保证的是CP,Eureka保证的AP

Eureka如何保证可用性:

Eureka有多个节点,它们各个节点都是平等的,当其他有几个节点挂掉之后不会影响其他正常节点的工作,剩下的节点依旧可以提供注册服务和查询服务,只要有一台Eureka存在,就能保证服务的可用,只不过不能保证查询的信息是最新的,也就是说Eureka不能保证它的一个一致性,而且就是Eurake有一个自我保护机制,就是心跳机制,比如在15分钟内有超过85%的节点心跳停止了,Eureka就会认为客户端与注册中心出现了问题,它就会剔除掉那些心跳停止的服务,其他节点依旧可以提供注册和查询服务,直到稳定后,才会同步到其他节点,保证它的一个可用性,而Zookeeper是直接整个瘫痪掉来保证它的一个一致性

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,805评论 19 139
  • 1 为什么需要服务发现 简单来说,服务化的核心就是将传统的一站式应用根据业务拆分成一个一个的服务,而微服务在这个基...
    谦小易阅读 25,221评论 4 93
  • Eureka的优势 1、在Eureka平台中,如果某台服务器宕机,Eureka不会有类似于ZooKeeper的选举...
    过河卒sc阅读 3,471评论 0 0
  • 读《安静的力量》,生活有感。 我发誓,你的朋友圈肯定有这样作的人! 总觉得自己跟别人不一样,她的朋友圈里总是这样写...
    阿错错错阅读 1,950评论 0 0
  • 我是一只鱼, 喜怒哀乐都在水里, 在意水里的空气, 还有彩色气泡的秘密。 不用太多的言语, 不过七秒的记忆, 还是...
    二井共先生阅读 2,767评论 0 1

友情链接更多精彩内容