内容简介:ZooKeeper 作为分布式的存储方式, 有很多种使用场景, 把典型的使用场景提取出来, 成为"配方", 方便用户参考. Curator 作为这些典型场景的具体实现框架, 进一步简化了用户的使用成本.Curator 实现了 ZooKeeper 配方文档中列出的所有配方(两阶段提交除外)。单击下面的配方名称以获取详细文档。注意:大多数 Curator 配方将自动创建配方的路径的父节点, 默认值为 CreateMode.CONTAINER (即znode 为容器节点, 用于锁, 选举等功能, 空容器可能会被节
Curator: ZooKeeper的使用配方
ZooKeeper 作为分布式的存储方式, 有很多种使用场景, 把典型的使用场景提取出来, 成为"配方", 方便用户参考. Curator 作为这些典型场景的具体实现框架, 进一步简化了用户的使用成本.
Curator 实现了 ZooKeeper 配方文档中列出的所有配方(两阶段提交除外)。单击下面的配方名称以获取详细文档。注意:大多数 Curator 配方将自动创建配方的路径的父节点, 默认值为 CreateMode.CONTAINER (即znode 为容器节点, 用于锁, 选举等功能, 空容器可能会被节点删除)。另请参阅有关“Curator Recipes Own Their ZNode/Paths”的 技术说明7 。
选举
- 领导者闩锁 - 在分布式计算中,领导者选举是指定单个流程作为分布在多个计算机(节点)中的某个任务的组织者的过程。在任务开始之前,所有网络节点都不知道哪个节点将充当任务的“领导者”或协调者。然而,在运行了领导者选举算法之后,整个网络中的每个节点都将特定的唯一节点识别为任务领导者。
- 领导人选举 - Curator 领导人选举配方。
锁
- 共享重入锁 - 完全分布式锁,全局同步,意味着在任何快照时,没有两个客户端认为它们具有相同的锁定。
- 共享锁 - 与共享重入锁类似,但不可重入。
- 共享可重入读写锁 - 可跨 JVM 运行的可重入读/写互斥锁。读写锁保持一对相关的锁,一个用于只读操作,一个用于写入。只要没有写入时,读锁定可以由多个读取器进程同时保持。写锁是独占的。
- 共享信号量 - 一种适用于跨 JVM 的计数信号量。所有进程使用相同锁定路径的在全部 JVM 中的都将实现进程间有限的租约。此外,这个信号量大多是“公平的” - 每个用户将按照要求的顺序获得租约(从ZK的角度来看)。
- 多共享锁 - 将多个锁作为单个实体进行管理的容器。调用acquire() 时,将获取所有锁。如果失败,则释放所有已获取的路径。类似地,当调用release() 时,将释放所有锁(忽略失败)。
屏障
- 屏障 - 分布式系统使用屏障来阻止一组节点的处理,直到满足条件,此时允许所有节点继续运行。
- 双重屏障 - 双重屏障使客户端能够同步计算的开始和结束。当足够的进程加入屏障时,进程开始计算并在完成后离开屏障。
计数器
- 共享计数器 - 管理共享整数。观看相同路径的所有客户端将具有共享整数的最新值(考虑ZK的正常一致性保证)。
- 分布式原子长整形 - 一个尝试原子增量的计数器。它首先尝试使用乐观锁定。如果失败,则采用可选的 InterProcessMutex。对于乐观和互斥两种情况,都有重试策略用于重试增量。
高速缓存
- 路径缓存 - 路径缓存用于观察 ZNode。每当添加,更新或删除子项时,路径缓存将更改其状态以包含当前子项集,子项的数据和子项的状态。Curator 框架中的路径缓存由 PathChildrenCache 类提供。对路径的更改将传递给已注册的 PathChildrenCacheListener 实例。
- 节点缓存 - 一种试图保持本地缓存的节点数据的实用程序。此类将监听节点,响应更新/创建/删除事件,下拉数据等。您可以注册一个侦听器, 在发生更改时将收到通知。
- 树缓存 - 一种实用程序,它尝试在本地缓存 Z K路径的所有子节点的所有数据。此类将观察 ZK 路径,响应更新/创建/删除事件,下拉数据等。您可以注册一个将在发生更改时收到通知的侦听器。
节点
- 持久节点 - 尝试一直保持在 ZooKeeper 中的节点,即使通过连接和会话中断也是如此。
- 持久性TTL节点 - 当您需要创建 TTL 节点, 但又不希望通过定期手动设置数据来保持其活动时非常有用。
- 集团成员 - 集团成员管理。将此实例添加到组中,并在组中保留成员的缓存。
队列
- 分布式队列 - 分布式队列 ZK 配方的实现。保证排入队列的项目(通过 ZK 的PERSISTENTSEQUENTIAL 节点)。如果单个消费者从队列中取出物品,他们将按FIFO 排序。如果顺序很重要,请使用 LeaderSelector 指定单个消费者。
- 分布式Id队列 - DistributedQueue 的一个版本,它允许ID与队列项相关联。如果需要,可以从队列中删除项目。
- 分布式优先级队列 - 一种分布式优先级队列 ZK 配方的实现。
- 分布式延迟队列 - 一种分布式延迟队列的实现。
- 简单分布式队列 - ZK分发附带的 DistributedQueue 的替代品。
Curator 名称来源
策展人(curator)的产生于西方博物馆、美术馆体系的建立密切相关。英文“curator”一词在英汉词典中以前通常被翻译成“博物馆馆长”、“掌管者”、或“监护人”等,和艺术关系最为密切的大概是“博物馆馆长”。事实上,在西方语境中,“curator”作为职业最早也主要是指16世纪以来随着私人博物馆的兴起而出现的在馆内负责藏品研究、保管和陈列的专职人员。在某些情况下,curator可能也就是馆长(director),亦需负责博物馆的行政管理、资金筹集和社会关系等。后来,随着艺术品在馆藏中数量增多和重要性上升,出现了专门负责馆藏艺术品研究、保管和陈列的人员。
参考文献
以上所述就是小编给大家介绍的《Curator: ZooKeeper的使用配方》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- Kubernetes管理:看看EBay的蜜汁配方
- RecyclerView使用指南(一)—— 基本使用
- 如何使用Meteorjs使用URL参数
- 使用 defer 还是不使用 defer?
- 使用 Typescript 加强 Vuex 使用体验
- [译] 何时使用 Rust?何时使用 Go?
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
An Introduction to Genetic Algorithms
Melanie Mitchell / MIT Press / 1998-2-6 / USD 45.00
Genetic algorithms have been used in science and engineering as adaptive algorithms for solving practical problems and as computational models of natural evolutionary systems. This brief, accessible i......一起来看看 《An Introduction to Genetic Algorithms》 这本书的介绍吧!
JSON 在线解析
在线 JSON 格式化工具
Base64 编码/解码
Base64 编码/解码