Zookeeper和Eureka两个作为注册中心的区别

  首先我们来了解一下什么是CPA理论

CAP理论是:分布式系统在设计时只能在一致性(Consistency)、可用性(Availability)、分区容忍性(Partition
Tolerance)中满足两种,无法兼顾三种。
通过下图可以更好的理解什么CPA
在这里插入图片描述
一致性(Consistency):服务A、B、C三个结点都存储了用户数据, 三个结点的数据需要保持同一时刻数据一致
性。
**可用性(Availability):**服务A、B、C三个结点,其中一个结点宕机不影响整个集群对外提供服务,如果只有服务A结
点,当服务A宕机整个系统将无法提供服务,增加服务B、C是为了保证系统的可用性。
**分区容忍性(Partition Tolerance):**分区容忍性就是允许系统通过网络协同工作,分区容忍性要解决由于网络分区
导致数据的不完整及无法访问等问题。
分布式系统不可避免的出现了多个系统通过网络协同工作的场景,结点之间难免会出现网络中断、网延延迟等现
象,这种现象一旦出现就导致数据被分散在不同的结点上,这就是网络分区。
分布式系统能否兼顾C、A、P?
在保证分区容忍性的前提下一致性和可用性无法兼顾,如果要提高系统的可用性就要增加多个结点,如果要保证数
据的一致性就要实现每个结点的数据一致,结点越多可用性越好,但是数据一致性越差。
所以,在进行分布式系统设计时,同时满足“一致性”、“可用性”和“分区容忍性”三者是几乎不可能的。
CAP有哪些组合方式?
1、CA:放弃分区容忍性,加强一致性和可用性,关系数据库按照CA进行设计。
2、AP:放弃一致性,加强可用性和分区容忍性,追求最终一致性,很多NoSQL数据库按照AP进行设计。
说明:这里放弃一致性是指放弃强一致性,强一致性就是写入成功立刻要查询出最新数据。追求最终一致性是指允
许暂时的数据不一致,只要最终在用户接受的时间内数据 一致即可。
3、CP:放弃可用性,加强一致性和分区容忍性,一些强一致性要求的系统按CP进行设计,比如跨行转账,一次转
账请求要等待双方银行系统都完成整个事务才算完成。
说明:由于网络问题的存在CP系统可能会出现待等待超时,如果没有处理超时问题则整理系统会出现阻塞。

CPA和Zookeeper以及Eureka什么关系?
先来说Zookeeper作为注册中心时:
Zookeeper保证得是CP
我们向注册中心请求服务时,我们可以接受注册中心返回得是几分钟前得注册信息,但是不可能接受服务直接挂掉不能用.所以注册中心服务功能对可用性得要求要高于一致性.zookeeper会出现这样一种情况.当maser节点因为网络故障与其他节点失去联系时,剩余节点会重新进行leader选举,重点是选举leader选举时间太长,而且选举期间zk集群都是不可用,这样在选举期间注册服务瘫痪.
在云部署情况下,因为网络问题使得zk集群失去master节点是很容易发生得事,虽然服务能够最终恢复,但是漫长得选举时间导致得注册服务长期不可用是不能接受得.
再来说Eureka作为注册中心时:
Eureka保证得是AP:
Eureka在设计得时候就优先保证可用性.Eureka各个节点都是平等得,几个节点down掉不会影响正常节点工作,剩余的节点仍然可以提供注册服务.而Eureka得客户端向Eureka注册或者发现失败时,则会自动切换至其他节点,只要还有一台Eureka还在,就能保证服务可用(A:可用性) ,只不过查到得信息可能不是最新得(不保证C: 强一致性).而且Eureka还有自动保护机制,如果在15分钟内超过85%得节点都没有正常得心跳,那么Eureka就认为客户端与注册中心发生故障,就会出现一下情况:

  • Eureka不在从注册列表中移除因为没有长时间没有心跳应该过期得服务
  • Eureka仍然能够接受新服务得注册和查询请求,但是不会同步到其他节点上(A:可用性)
  • 当网咯稳定后,当前实例得新得注册中心信息会同步到其他节点上

所以,Eureka可以很好得应对因为网络故障导致部分节点失去联系得情况,而不会想Zookeeper那样使得整个注册服务瘫痪.

因此

区别一: Eureka 保证得 AP (可用性, 分区容忍性)
区别二: Zookeeper保证得时CP (一致性,分区容忍性)
区别三: Eureka具有自我保护机制,而zookeeper则没有

以上就是本人认识到得一些区别和特点,欢迎各位补充和纠错!!!

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值