Zookeeper设计的思想

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

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

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

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

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

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

相关推荐
Wang's Blog2 小时前
Nestjs框架: 微服务事件驱动通信与超时处理机制优化基于Event-Based 通信及异常捕获实践
微服务·云原生·架构·nestjs
YXWik62 小时前
新版若依微服务增强swagger增强集成knife4j
微服务·云原生·架构
马达加斯加D3 小时前
k8s --- Intro
云原生·容器·kubernetes
blammmp3 小时前
RabbitMQ:仲裁队列 && HAProxy
分布式·rabbitmq
9ilk3 小时前
【仿RabbitMQ的发布订阅式消息队列】--- 前置技术
分布式·后端·中间件·rabbitmq
Ribou4 小时前
无zookeeper Kafka 4.1.0 Raft 集群搭建
分布式·zookeeper·kafka
峰顶听歌的鲸鱼5 小时前
9.OpenStack管理(三)
运维·笔记·分布式·openstack·学习方法
铁锹少年7 小时前
当多进程遇上异步:一次 Celery 与 Async SQLAlchemy 的边界冲突
分布式·后端·python·架构·fastapi
!chen7 小时前
k8s-应用部署和组件及常用命令
云原生·容器·kubernetes
Solar20258 小时前
微服务调用超时:从问题分析到全链路优化实践
微服务·云原生·架构