请选择 进入手机版 | 继续访问电脑版

面试官:同样是注册中心,Zookeeper和Eureka有哪些区别?

[复制链接]
余峻 发表于 2021-1-2 17:40:00 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

CAP定理


在分布式系统的发展中,影响最大的莫过于CAP定理了,是分布式系统发展的理论基石。

  • 2000年,加州大学的盘算机科学家 Eric Brewer提出了CAP料想
  • 2002 年,麻省理工学院的 Seth Gilbert 和 Nancy Lynch 从理论上证明确 CAP 料想,CAP料想成为了CAP定理
CAP定理,简单来说就是分布式系统不大概同时满足Consistency 一致性、Availability 可用性、Partition Tolerance 分区容错性三个要素
Consistency 一致性

一致性的寄义为,在节点的任意时刻,访问任意节点返回的数据是一致的。即Client端写入一个数据后,Server端将数据同步到整个系统,从而包管系统的数据都相同

Availability 可用性

可用性的寄义为,集群可以大概对用户的请求给予响应。

Partition Tolerance 分区容错性

分区容错的寄义为,当出现分区故障时,系统仍要对外提供服务。分布式系统中,每个服务节点都是不可靠的,当某些节点出现异常时,大概节点之间的通讯产生异常时,整个系统就产生了分区问题,分布式系统中分区问题是客观存在的。

CAP权衡

CA


系统选择CA,即不支持分区容错,只支持一致性和可用性。意味着不允许出现分区异常,网络一致处于理想状态。但是分布式系统之间网络异常是客观存在的,如果制止了P,只能把分布式系统退回到单实例系统。
CP


因为分布式系统P是客观存在的,所以我们要在CP和AP之间举行决定。
当选择CP时,相当于放弃系统的可用性,调换一致性。zookeeper是选择了CP的系统

在zookeeper集群中,有如下三种脚色
脚色作用Leader事务请求的唯一调理者和处理处罚者 (事务请求为除查询之外的请求)Follower处理处罚非事务请求,到场Leader选举投票Observer处理处罚非事务请求,不到场选举投票在Leader服务器失效时,会重新从Follower服务器中选举一个新的服务器作为Leader服务器。在重新选举Leader服务器的过程中,事务请求会被挂起,选举完Leader服务器之后才会执行这些请求。即为了包管一致性,放弃了系统的可用性
AP


当选择AP时,相当于放弃系统一致性,调换可用性。eureka是选择了AP的系统
和zookeeper集群中有三种脚色差异的是,eureka集群中每个节点饰演相同的脚色,他们通过相互注册的方式来感知对方的存在,当有注册信息时,他们会同步给集群内的其他节点。

下面我从源码角度分析一下eureka是如何放弃一致性来包管可用性的(放心,不会放源码的,说一下大概思路。源码也比力简单,有兴趣的可以看我写的博客https://blog.csdn.net/zzti_erlie/article/details/104088914)
eureka注册中心的信息生存在AbstractInstanceRegistry类的成员变量中
  1. // AbstractInstanceRegistryprivate final ConcurrentHashMap registry        = new ConcurrentHashMap();
复制代码
就是一个双层map,这个双层map也很好明确。最外层是服务名,内里是一个详细的实例名

当有服务往eureka上注册时,注册信息会被生存在map中,同时会把信息同步给其他的节点。此时有大概有些节点不可用了,大概网络故障,并没有收到信息,此时集群节点内的信息大概是不一致的。
当客户端从某个eureka节点获取信息失败,大概注册失败,会自动切换到另一个eureka节点。只要有一台eureka节点可用,就能包管注册服务可用。
Zookeeper和Eureka的区别

最后总结一下两者的区别
ZookeeperEureka设计原则CPAP优点数据最终一致服务高可用缺点网络分区会影响leader选举,凌驾阈值后集群不可用服务节点间的数据大概不一致适用场景对数据一致性要求较高对注册中心服务可用性要求较高博客

[1]https://www.infoq.cn/article/jldjq*3wtn2pcqtdyokh
数据同步算法
[2]https://www.cnblogs.com/zz-ksw/p/12786067.html

来源:https://blog.csdn.net/zzti_erlie/article/details/112059112
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


专注素材教程免费分享
全国免费热线电话

18768367769

周一至周日9:00-23:00

反馈建议

27428564@qq.com 在线QQ咨询

扫描二维码关注我们

Powered by Discuz! X3.4© 2001-2013 Comsenz Inc.( 蜀ICP备2021001884号-1 )