Zookeeper设计的思想

ZooKeeper设计的目的是提供高性能、高可用、顺序一致性的分布式协调服务、保证数据最终一致性。

高性能(简单的数据模型)

1: 采用树形结构组织数据节点;
2: 全量数据节点,都存储在内存中;
3: Follower 和 Observer 直接处理非事务请求;

高可用(构建集群)
1: 半数以上机器存活,服务就能正常运行
2: 自动进行 Leader 选举

顺序一致性(事务操作的顺序)
1: 每个事务请求,都会转发给 Leader 处理
2: 每个事务,会分配全局唯一的递增id(zxid,64位:epoch + 自增 id)

最终一致性
1: 通过提议投票方式,保证事务提交的可靠性
2: 提议投票方式,只能保证 Client 收到事务提交成功后,半数以上节点能够看到最新数据

相关推荐
moonsims6 分钟前
基于Lattice Mesh的AI 的分布式共识与动态任务分配架构的无人机群“去中心化无声协同”技术和极低带宽下的韧性通信技术
人工智能·分布式·架构
张小凡vip24 分钟前
Kubernetes--secret的简介和使用
云原生·容器·kubernetes
一个骇客1 小时前
批处理模型详解:从 MapReduce 到数据流引擎
分布式·架构
todoitbo1 小时前
Agent_Swarm_分布式协作的通信编排与节点发现机制分析
人工智能·分布式·ai·jiuwenswarm
张忠琳2 小时前
【client-go v0.36.1】(Reflector Part 3) Reflector 超深度分析 — watchList 流式初始化
云原生·kubernetes·informer·client-go·reflector
Ze3G90nYt2 小时前
Redis 分布式锁进阶第一百二十篇
数据库·redis·分布式
段一凡-华北理工大学2 小时前
工业领域的Hadoop架构学习~系列文章19:能源行业Hadoop应用实践
大数据·人工智能·hadoop·分布式·学习·架构·高炉炼铁
蘋天纬地2 小时前
k8s中的工作负载是什么,都有哪几种类型的工作负载
云原生·容器·kubernetes
小小龙学IT2 小时前
Go语言后端开发实战指南:构建高性能云原生服务
前端·云原生·golang
qq_452396232 小时前
第一篇:《Kubernetes 是什么?为什么它是云原生基石?》
云原生·容器·kubernetes