Zookeeper 中的 CAP

一致性 C: Zookeeper 是强一致性系统,为了保证较强的可用性,"一半以上成功即成功"的数据同步方式可能会导致部分节点的数据不一致。所以 Zookeeper 还提供了 sync() 操作来做所有节点的数据同步,这就关于 C 和 A 的选择问题交给了用户,因为使用 sync()势必会延长同步时间,可用性会有一些损失。

可用性 A: Zookeeper 数据存储在内存中,且各个节点都可以相应读请求,具有好的响应性能。Zookeeper 保证了数据总是可用的,没有锁。并且有一大半的节点所拥有的数据是最新的。

分区容忍性 P: Follower 节点过多会导致增大数据同步的延时(需要半数以上 follower 写完提交)。同时选举过程的收敛速度会变慢,可用性降低。Zookeeper 通过引入 observer 节点缓解了这个问题,增加 observer 节点后集群可接受 client 请求的节点多了,而且 observer 不参与投票,可以提高可用性和扩展性,但是节点多数据同步总归是个问题,所以一致性会有所降低。

相关推荐
讨厌下雨的天空4 分钟前
Linux信号
linux·运维·c++
赖small强21 分钟前
【Linux C/C++开发】第26章:系统级综合项目理论
linux·c语言·c++
SCandL15233 分钟前
安全上下文的修改实验
linux
ragnwang38 分钟前
Ubuntu /home 分区安全扩容教程
linux·运维·ubuntu
Azure++1 小时前
Centos安装clickhouse
linux·clickhouse·centos
濊繵1 小时前
Linux网络--应用层自定义协议与序列化
linux·服务器·网络
Roye_ack1 小时前
【黑马点评 - 高级篇】Redis分布式缓存原理(Redis持久化 RDB AOF + 主从集群 哨兵 分片集群 + 多级缓存)
redis·分布式·缓存·aof·redis持久化·rdb·redis主从哨兵分片集群
b***59431 小时前
分布式WEB应用中会话管理的变迁之路
前端·分布式
Z_Easen2 小时前
RabbitMQ 技术深度解析:从核心概念到可靠性实践
分布式·rabbitmq
潇凝子潇2 小时前
Linux 服务器实时监控Shell 脚本
linux·服务器·chrome