首页 > 其他分享 >ZooKeeper论文笔记.18205343

ZooKeeper论文笔记.18205343

时间:2024-05-22 08:56:12浏览次数:20  
标签:缓存 请求 18205343 ZooKeeper 笔记 分布式系统 leader 客户端

概要

是什么:ZooKeeper是一个分布式系统的基础构件(协调内核),分布式应用(如RocketMQ)可以使用ZooKeeper来处理分布式系统协同的各个方面,比如可以使用它来实现leader选举、分布式锁等等,分布式应用可以使用它暴露的API实现各种类型的协同原语(考虑Java中的AQS)。它让分布式应用的设计者无需考虑分布式系统中各种繁杂的问题,如网络分区、节点故障等等,专注于实现应用的逻辑。

API结构:ZooKeeper提供给应用的API是类似文件系统的层级结构对象,并且这种对象是无等待的(wait-free)。

ordering:单客户端所有操作FIFO,所有客户端的所有写入操作全局线性(Linearizable)。

管道设计:ZooKeeper在对请求的处理上使用了管道设计,这使得客户端的请求可以异步化,并且天然满足单客户端操作的FIFO特性

ZAB:基于leader的原子广播协议,用于处理所有的写请求。可以将它理解为一种只针对于写请求的复制状态机(思考raft),也就是说写请求是leader处理并复制到所有follower的,而对于读请求,ZooKeeper会在节点本地处理,不管它是不是leader(但这里想要保证不back-in-time,不读到过时数据,还要有其它保证)

Watch与缓存:ZooKeeper提供了Watch机制,这使得客户端可以无需直接地管理缓存,而是会在一个内容发生改变后得到通知。这里论文中还提到了Chubby,它的设计就是让客户端直接管理缓存,在这种设计下一旦缓存发生变化,就要阻止更新,失效所有相关客户端的缓存,慢客户端或者已经失效的客户端会将更新阻塞。Chubby使用lease机制来避免永久性的阻塞,保证集群的活性。

标签:缓存,请求,18205343,ZooKeeper,笔记,分布式系统,leader,客户端
From: https://www.cnblogs.com/lilpig/p/18205403

相关文章

  • 《人月神话》阅读笔记
    终于有幸拜读了《人月神话》这部业内经典著作。整体来说,本书的主线——人月神话、没有银弹在现今的软件工程管理领域依然属于有效的基础理论。不过有些东西确实过时了,比方说文档的管理,现在已经有了svn或者在线文档。提到调试的复杂性,现在的集成环境把调试变得非常容易。读完之后才......
  • 《人月神话读书笔记二》
    贯彻执行即使是大型的设计团队,设计结果也必须由一个或两个人来完成,以确保这些决定是一致的。允许体系结构师对实现人员的询问做出电话应答解释是非常重要的,并且必须进行日志记录和整理发布。对于存有疑问的实现人员,应鼓励他们打电话询问相应的结构师,而不是一边自行猜测一边工作......
  • 笔记本温度常识
         ......
  • Redis 笔记
    1.什么是redisredis是高性能缓存数据库,基于内存运行key-value存储系统,提供分布式锁,支持事务,持久化,多种分布式集群方案。使用单线程的多路IO服用模型。redis支持数据类型String,Hash,List,Set,SortedSet等String存储字符串,Hash存储key-value键值对集合List字符串链表......
  • DDD 笔记
    1.简单讲讲DDD,和DDD哪些优势领域驱动设计。就是通过领域来指导软件设计,是一种十分抽象的软件设计思想,它主要分为战略设计和战术设计战略方面,通过事件风暴进行领域模型的划分,划分出核心域,子域,支撑域,定义通用语言,划分出界限上下文。在战术设计方面,ddd将架构分层,“松耦合,高内聚”......
  • 线性代数笔记——行列式(1)
    1.n级排列:由1,2,3,...,n组成的一个有序数组  n级排列的个数有n!=n(n-1)(n-2)...3*2*12.逆序:大数排在小数前面逆序数:逆序的总数如4213的逆序数    N(4213)=3+1+0+0=4如标准排列的逆序数为   N(123....n)=0n,n-1,n-2,...,3,2,1的逆序数为N(n(n-1)(n......
  • 《从小工到大工》阅读笔记
         在老师的推荐之下,我阅读了这本书这本书的作者是AndrewHunt和DavidThomas,他们是两位经验丰富的软件开发者。他们在书中分享了自己的经验和见解,帮助读者成为更好的程序员。这本书的主要内容包括软件开发的基本原则、编程技巧、代码质量、工作流程等方面。   ......
  • Asp-Net-Core开发笔记:给SwaggerUI加上登录保护功能
    前言#在SwaggerUI中加入登录验证,是我很早前就做过的,不过之前的做法总感觉有点硬编码,最近.Net8增加了一个新特性:调用MapSwagger().RequireAuthorization来保护SwaggerUI,但官方的这个功能又像半成品一样,只能使用postmancurl之类的工具带上Authorizationheader来请......
  • Asp-Net-Core开发笔记:使用ActionFilterAttribute实现非侵入式的参数校验
    前言#在现代应用开发中,确保API的安全性和可靠性至关重要。面向切面编程(AOP)通过将横切关注点(如验证、日志记录、异常处理)与核心业务逻辑分离,极大地提升了代码的模块化和可维护性。在ASP.NETCore中,利用ActionFilterAttribute可以方便地实现AOP的理念,能够以简洁、高效的方式进行......
  • 《构建之法》阅读笔记之二
    第二部分:实践指南主题: 构建的实际应用内容概要:构建过程: 详细介绍了构建过程中的各个阶段,包括需求分析、设计、开发、测试等。对每个阶段的任务和方法进行了具体的描述,例如需求分析阶段可以采用用户故事、用例分析等方法;设计阶段可以采用面向对象设计、设计模式等方法。构......