随笔分类 - zookeeper
摘要:简介 curator的TreeCache允许对某个路径的数据和路径变更以及其下所有子孙节点的数据和路径变更进行监听。 官方文档:http://curator.apache.org/curator-recipes/tree-cache.html javaDoc:http://curator.apach
阅读全文
摘要:简介 Curator的NodeCache允许你监听一个节点,当节点数据更改或者节点被删除的时候将会触发监听。 官方文档:http://curator.apache.org/curator-recipes/node-cache.html javaDoc:http://curator.apache.or
阅读全文
摘要:简介 curator可以监听路径下子节点的变更操作,如创建节点,删除节点 官方文档:http://curator.apache.org/curator-recipes/path-cache.html javaDoc:http://curator.apache.org/apidocs/org/apac
阅读全文
摘要:简介 curator实现了类似DelayQueue的分布式延迟队列 官方文档:http://curator.apache.org/curator-recipes/distributed-delay-queue.html javaDoc:http://curator.apache.org/apidoc
阅读全文
摘要:简介 官方文档:http://curator.apache.org/curator-recipes/distributed-priority-queue.html javaDoc:http://curator.apache.org/apidocs/org/apache/curator/framewo
阅读全文
摘要:简介 curator实现了一种分布式ID队列,也是遵循FIFO原则,比普通队列新增的一个点是ID队列可以根据ID对队列元素进行操作,比如移除该元素。 官方文档:http://curator.apache.org/curator-recipes/distributed-id-queue.html ja
阅读全文
摘要:简介 curator实现了先入先出的分布式消息队列,它采用的是zookeeper的持久化有序节点。 官方文档:http://curator.apache.org/curator-recipes/distributed-queue.html javaDoc:http://curator.apache.
阅读全文
摘要:简介 和Java的AtomicLong没有太大的不同DistributedAtomicLong旨在分布式场景中维护一个Long类型的数据,你可以像普通单机环境一样来使用它。 官方文档:http://curator.apache.org/curator-recipes/distributed-atom
阅读全文
摘要:简介 我们可以通过curator实现对一个分布式环境下共享变量的访问,zookeeper将共享变量维护在同一个路径下。 官方文档: http://curator.apache.org/curator-recipes/shared-counter.html javaDoc:http://curator
阅读全文
摘要:简介 curator实现了单个屏障barrier和双重屏障DoubleBarrier,单个屏障就是在一个进程里面设置了屏障,并等待其它进程去移除这个屏障,否则一直阻塞。双重屏障就是设置了两道屏障,两个线程都到达第一个屏障的时候执行下面的内容,然后两个都到达第二个屏障的时候继续执行下面的内容。 官方文
阅读全文
摘要:简介 curator实现了一个类似容器的锁InterProcessMultiLock,它可以把多个锁包含起来像一个锁一样进行操作,简单来说就是对多个锁进行一组操作。当acquire的时候就获得多个锁资源,否则失败。当release时候释放所有锁资源,不过如果其中一把锁释放失败将会被忽略。 官方文档:
阅读全文
摘要:简介 跟Java并信号量没有什么不同,curator实现的信号量也是基于令牌桶算法,当一个线程要执行的时候就去桶里面获取令牌,如果有足够的令牌那么我就执行如果没有那么我就阻塞,当线程执行完毕也要将令牌放回桶里。 官方文档:http://curator.apache.org/curator-recip
阅读全文
摘要:简介 recipes的InterProcessSemaphoreMutex是一种不可重入的互斥锁,也就意味着即使是同一个线程也无法在持有锁的情况下再次获得锁,所以需要注意,不可重入的锁很容易在一些情况导致死锁,比如你写了一个递归。 官方文档:http://curator.apache.org/cur
阅读全文
摘要:简介 前面我们看到LeaderLatch对于选举的实现:https://www.cnblogs.com/lay2017/p/10264300.html 节点在加入选举以后,除非程序结束或者close()退出选举,否则加点自加入选举以后将持续持有或者保持对主节点的竞争。 recipes的另外一个实现L
阅读全文
摘要:简介 Java在单机环境实现了BlockQueue阻塞队列,与之类似的curator实现了分布式场景下的阻塞队列,SimpleDistributedQueue 官方文档:http://curator.apache.org/curator-recipes/simple-distributed-queu
阅读全文
摘要:简介 curator针对分布式场景实现了分布式屏障:barrier。我们在分布式系统中可以使用barrier去阻塞进程,知道某个条件被触发。其实跟Java多线程的barrier是一样的。 例如:当两个进程在执行任务的时候,A调用了B,A需要等待B完成以后的通知 官方文档:http://curator
阅读全文
摘要:简介 在分布式计算中,主节点选举是为了把某个进程作为主节点来控制其它节点的过程。在选举结束之前,我们不知道哪个节点会成为主节点。curator对于主节点选举有两种实现方式,本文示例演示Latch的实现示例。 官方文档:http://curator.apache.org/curator-recipes
阅读全文
摘要:简介 curator的recipes实现了可重入互斥锁,允许你在分布式场景下多个进程之间实现锁的互斥以协调多进程执行。 相关类:InterProcessMutex 官方文档:http://curator.apache.org/curator-recipes/shared-reentrant-lock
阅读全文
摘要:简介 curator实现了跨JVM的可重入读写互斥锁。它使用zookeeper去进行加锁,所以指定相同路径的处理线程将会基于“公平锁”的机制去竞争锁资源。 读写锁包含了读锁、写锁两个,它们的互斥关系如下: 1)读写互斥; 2)写写互斥; 3)读读不互斥。 重入性:读写锁是可以重入的,意味着你获取了一
阅读全文
摘要:简介 curator是Apache下开源的项目,它包含了zookeeper的客户端高层级API的实现,并提供了一些常见的用例实现方便我们直接使用。简单来说,使用curator作为zookeeper客户端能够使我们更加简单且可靠地在我们的程序中使用zookeeper。 curator官网:http:/
阅读全文