《zk:分布式过程协同技术详解》读书笔记2-内部原理篇

简介: 《zk:分布式过程协同技术详解》读书笔记2-内部原理篇

9.1 请求、事务和标识符zxid


  • zk服务器会在本地处理只读请求(如,getData,getChildren,exists).
  • 那些会改变zk状态的客户端请求(create, delete和setData)将会被转发给Leader,由Leader执行响应的请求并形成状态的更新,且每次更新都会形成一个事务。以setData为例,变更节点的数据但是不变更节点的版本号将导致错误发生,因此,zk集群以事务的方式运行,确保所有的变更操作以事务的方式被执行,同时不会被其他事务所干扰。
  • 当Leader产生了一个事务,就会为这个事务分配一个标识符,称之为zk的会话id(zxid),通过zxid对事务进行标识,这样就可以实现按照Leader所指定的顺序在各个服务器中顺序执行。
  • 服务器之间在进行Leader选举的时候也会交换zxid,从而判断哪个无故障的服务器接收了更多的事务,并可以同步服务器之间的状态信息。
  • zxid为一个long(64位)的整数,分为两部分,时间戳epoch和计数器counter部分,每个部分为32位。


9.2 群首Leader选举


  • 先比较zxid(事物ID)再比较sid(myid)


9.3 Zab:状态更新的⼴播协议


  • Zab协议: Zookeeper原子广播协议 Zookeeper Atomic Broadcase protocol
  • 该协议提交一个事务的过程类似于两阶段提交
  1. 群首在接收到写请求后,会向所有的Follower发送一个PROPOSAL(提议)消息P
  2. FOLLOWER接收到消息p后,会响应群首一个ACK消息,通知群首已接收该提案PROPOSAL
  3. 当收到仲裁数量(超过集群数量的一半)的服务器的ACK(包括群首自己)后,群首就会发送消息通知FOLLOWER进行提交COMMIT操作。


image.png

相关文章
|
6天前
|
监控 算法 网络协议
|
19天前
|
人工智能 文字识别 Java
SpringCloud+Python 混合微服务,如何打造AI分布式业务应用的技术底层?
尼恩,一位拥有20年架构经验的老架构师,通过其深厚的架构功力,成功指导了一位9年经验的网易工程师转型为大模型架构师,薪资逆涨50%,年薪近80W。尼恩的指导不仅帮助这位工程师在一年内成为大模型架构师,还让他管理起了10人团队,产品成功应用于多家大中型企业。尼恩因此决定编写《LLM大模型学习圣经》系列,帮助更多人掌握大模型架构,实现职业跃迁。该系列包括《从0到1吃透Transformer技术底座》、《从0到1精通RAG架构》等,旨在系统化、体系化地讲解大模型技术,助力读者实现“offer直提”。此外,尼恩还分享了多个技术圣经,如《NIO圣经》、《Docker圣经》等,帮助读者深入理解核心技术。
SpringCloud+Python 混合微服务,如何打造AI分布式业务应用的技术底层?
|
28天前
|
分布式计算 Hadoop 网络安全
Hadoop-08-HDFS集群 基础知识 命令行上机实操 hadoop fs 分布式文件系统 读写原理 读流程与写流程 基本语法上传下载拷贝移动文件
Hadoop-08-HDFS集群 基础知识 命令行上机实操 hadoop fs 分布式文件系统 读写原理 读流程与写流程 基本语法上传下载拷贝移动文件
27 1
|
28天前
|
存储 机器学习/深度学习 缓存
Hadoop-07-HDFS集群 基础知识 分布式文件系统 读写原理 读流程与写流程 基本语法上传下载拷贝移动文件
Hadoop-07-HDFS集群 基础知识 分布式文件系统 读写原理 读流程与写流程 基本语法上传下载拷贝移动文件
39 1
|
22天前
|
存储 缓存 数据处理
深度解析:Hologres分布式存储引擎设计原理及其优化策略
【10月更文挑战第9天】在大数据时代,数据的规模和复杂性不断增加,这对数据库系统提出了更高的要求。传统的单机数据库难以应对海量数据处理的需求,而分布式数据库通过水平扩展提供了更好的解决方案。阿里云推出的Hologres是一个实时交互式分析服务,它结合了OLAP(在线分析处理)与OLTP(在线事务处理)的优势,能够在大规模数据集上提供低延迟的数据查询能力。本文将深入探讨Hologres分布式存储引擎的设计原理,并介绍一些关键的优化策略。
72 0
|
2月前
|
人工智能 Kubernetes Cloud Native
深度对话 解锁阿里云分布式云原生技术落地新姿势
深度对话 解锁阿里云分布式云原生技术落地新姿势
深度对话 解锁阿里云分布式云原生技术落地新姿势
因为一个问题、我新学了一门技术 ElasticSearch 分布式搜索
这篇文章讲述了作者因为一个检索问题而学习了ElasticSearch技术,并分享了排查和解决ElasticSearch检索结果与页面展示不符的过程。
因为一个问题、我新学了一门技术 ElasticSearch 分布式搜索
|
2月前
|
网络协议 安全 Java
分布式(基础)-RMI的原理
分布式(基础)-RMI的原理
|
3月前
|
存储 缓存 负载均衡
【PolarDB-X 技术揭秘】Lizard B+tree:揭秘分布式数据库索引优化的终极奥秘!
【8月更文挑战第25天】PolarDB-X是阿里云的一款分布式数据库产品,其核心组件Lizard B+tree针对分布式环境优化,解决了传统B+tree面临的数据分片与跨节点查询等问题。Lizard B+tree通过一致性哈希实现数据分片,确保分布式一致性;智能分区实现了负载均衡;高效的搜索算法与缓存机制降低了查询延迟;副本机制确保了系统的高可用性。此外,PolarDB-X通过自适应分支因子、缓存优化、异步写入、数据压缩和智能分片等策略进一步提升了Lizard B+tree的性能,使其能够在分布式环境下提供高性能的索引服务。这些优化不仅提高了查询速度,还确保了系统的稳定性和可靠性。
87 5
|
3月前
|
C# UED 定位技术
WPF控件大全:初学者必读,掌握控件使用技巧,让你的应用程序更上一层楼!
【8月更文挑战第31天】在WPF应用程序开发中,控件是实现用户界面交互的关键元素。WPF提供了丰富的控件库,包括基础控件(如`Button`、`TextBox`)、布局控件(如`StackPanel`、`Grid`)、数据绑定控件(如`ListBox`、`DataGrid`)等。本文将介绍这些控件的基本分类及使用技巧,并通过示例代码展示如何在项目中应用。合理选择控件并利用布局控件和数据绑定功能,可以提升用户体验和程序性能。
60 0

热门文章

最新文章