- 浏览: 627657 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (819)
- java开发 (110)
- 数据库 (56)
- javascript (30)
- 生活、哲理 (17)
- jquery (36)
- 杂谈 (15)
- linux (62)
- spring (52)
- kafka (11)
- http协议 (22)
- 架构 (18)
- ZooKeeper (18)
- eclipse (13)
- ngork (2)
- dubbo框架 (6)
- Mybatis (9)
- 缓存 (28)
- maven (20)
- MongoDB (3)
- 设计模式 (3)
- shiro (10)
- taokeeper (1)
- 锁和多线程 (3)
- Tomcat7集群 (12)
- Nginx (34)
- nodejs (1)
- MDC (1)
- Netty (7)
- solr (15)
- JSON (8)
- rabbitmq (32)
- disconf (7)
- PowerDesigne (0)
- Spring Boot (31)
- 日志系统 (6)
- erlang (2)
- Swagger (3)
- 测试工具 (3)
- docker (17)
- ELK (2)
- TCC分布式事务 (2)
- marathon (12)
- phpMyAdmin (12)
- git (3)
- Atomix (1)
- Calico (1)
- Lua (7)
- 泛解析 (2)
- OpenResty (2)
- spring mvc (19)
- 前端 (3)
- spring cloud (15)
- Netflix (1)
- zipkin (3)
- JVM 内存模型 (5)
- websocket (1)
- Eureka (4)
- apollo (2)
- idea (2)
- go (1)
- 业务 (0)
- idea开发工具 (1)
最新评论
-
sichunli_030:
对于频繁调用的话,建议采用连接池机制
配置TOMCAT及httpClient的keepalive以高效利用长连接 -
11想念99不见:
你好,我看不太懂。假如我的项目中会频繁调用rest接口,是要用 ...
配置TOMCAT及httpClient的keepalive以高效利用长连接
ZooKeeper原生的API支持通过注册Watcher来进行事件监听,但是Watcher通知是一次性的,因此开发过程中需要反复注册Watcher,比较繁琐。Curator引入了Cache来监听ZooKeeper服务端的事件。Cache对ZooKeeper事件监听进行了封装,能够自动处理反复注册监听,简化了ZooKeeper原生API繁琐的开发过程。
参考:http://macrochen.iteye.com/blog/1366136/
curator使用手记: http://www.tuicool.com/articles/36fyUn
Zookeeper开源客户端框架Curator简介:
http://blog.csdn.net/caomiao2006/article/details/46417083
- 简单的示例
package com.huey.dream.demo; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import org.apache.curator.framework.CuratorFramework; import org.apache.curator.framework.CuratorFrameworkFactory; import org.apache.curator.framework.recipes.cache.NodeCache; import org.apache.curator.framework.recipes.cache.NodeCacheListener; import org.apache.curator.framework.recipes.cache.PathChildrenCache; import org.apache.curator.framework.recipes.cache.PathChildrenCacheEvent; import org.apache.curator.framework.recipes.cache.PathChildrenCacheListener; import org.apache.curator.framework.recipes.cache.PathChildrenCache.StartMode; import org.apache.curator.retry.ExponentialBackoffRetry; /** * Curator事件监听 * @author huey * @version 1.0 * @created 2015-3-2 */ public class CarutorDemo { public static void main(String[] args) throws Exception { CuratorFramework client = CuratorFrameworkFactory.builder() .connectString("192.168.1.109:2181") .sessionTimeoutMs(5000) .connectionTimeoutMs(3000) .retryPolicy(new ExponentialBackoffRetry(1000, 3)) .build(); client.start(); client.create() .creatingParentsIfNeeded() .forPath("/zk-huey/cnode", "hello".getBytes()); /** * 在注册监听器的时候,如果传入此参数,当事件触发时,逻辑由线程池处理 */ ExecutorService pool = Executors.newFixedThreadPool(2); /** * 监听数据节点的变化情况 */ final NodeCache nodeCache = new NodeCache(client, "/zk-huey/cnode", false); nodeCache.start(true); nodeCache.getListenable().addListener( new NodeCacheListener() { @Override public void nodeChanged() throws Exception { System.out.println("Node data is changed, new data: " + new String(nodeCache.getCurrentData().getData())); } }, pool ); /** * 监听子节点的变化情况 */ final PathChildrenCache childrenCache = new PathChildrenCache(client, "/zk-huey", true); childrenCache.start(StartMode.POST_INITIALIZED_EVENT); childrenCache.getListenable().addListener( new PathChildrenCacheListener() { @Override public void childEvent(CuratorFramework client, PathChildrenCacheEvent event) throws Exception { switch (event.getType()) { case CHILD_ADDED: System.out.println("CHILD_ADDED: " + event.getData().getPath()); break; case CHILD_REMOVED: System.out.println("CHILD_REMOVED: " + event.getData().getPath()); break; case CHILD_UPDATED: System.out.println("CHILD_UPDATED: " + event.getData().getPath()); break; default: break; } } }, pool ); client.setData().forPath("/zk-huey/cnode", "world".getBytes()); Thread.sleep(10 * 1000); pool.shutdown(); client.close(); } }
参考:http://macrochen.iteye.com/blog/1366136/
curator使用手记: http://www.tuicool.com/articles/36fyUn
Zookeeper开源客户端框架Curator简介:
http://blog.csdn.net/caomiao2006/article/details/46417083
发表评论
-
Zookeeper的四字命令
2017-05-18 20:39 549http://www.cnblogs.com/wuxl360/ ... -
Curator Framework的基本使用方法
2016-10-21 15:17 1042Curator Framework提供了简化使用zookeep ... -
ZooKeeper学习总结
2016-09-30 15:18 401参考:http://www.tuicool.com/artic ... -
推荐一个zookeeper信息查看工具
2016-08-31 16:01 1690zookeeper信息查看工具 下载地址:https://i ... -
Paxos算法细节详解(一)--通过现实世界描述算法
2016-08-24 16:29 536http://www.cnblogs.com/endsock/ ... -
ZooKeeper学习总结 第一篇:ZooKeeper快速入门
2016-08-22 16:23 422http://www.cnblogs.com/leocook/ ... -
zookeeper原理(转)
2016-08-22 14:02 382ZooKeeper是一个分布式的 ... -
zookeeper客户端curator使用手记
2016-08-09 15:10 458http://www.tuicool.com/articles ... -
Zookeeper的一致性协议:Zab
2016-08-01 09:21 647Zookeeper使用了一种称为Zab(Zookeeper A ... -
ZooKeeper源码阅读(一):ZAB协议
2016-07-29 14:29 653ZooKeeper内部有一个in-memo ... -
Zookeeper基本原理与应用场景
2016-07-28 18:51 306http://blog.csdn.net/yunpiao123 ... -
一步一步理解Paxos算法
2016-07-21 14:34 601背景 Paxos算法是Lamport ... -
Paxos算法简述
2016-07-21 14:10 365Paxos算法是分布式中一个著名的一致性算法。它的假设前提是, ... -
Zookeeper-Zookeeper leader选举
2016-07-20 09:05 525在上一篇文章中我们大 ... -
部署与管理ZooKeeper(转)
2016-07-19 09:17 367http://www.cnblogs.com/ggjuchen ... -
ZooKeeper原理及使用
2016-08-02 08:27 403ZooKeeper是Hadoop Ecosystem中非常重要 ... -
ZooKeeper Java API
2016-05-22 10:05 879ZooKeeper提供了Java和C的binding. 本文关 ...
相关推荐
Curator 是一个基于 ZooKeeper 的开源客户端框架,它为 ZooKeeper 提供了高级抽象和功能,使得开发人员能够更方便地使用 ZooKeeper。 **Curator 框架概述** Curator 包含多个模块,如 ZooKeeper 客户端连接管理、...
Curator是Netflix公司开源的一套ZooKeeper客户端框架,Curator解决了很多ZooKeeper客户端非常底层的细节开发工作,包括连接重连、反复注册Watcher和NodeExistsException异常等,实现了Fluent风格的API接口,目前已经...
浅谈Zookeeper开源客户端框架Curator Curator是一个基于Zookeeper的开源客户端框架,由Netflix开发,旨在解决Zookeeper客户端使用过程中的各种问题。Curator提供了封装ZooKeeper client与ZooKeeper server之间的...
而Curator是Facebook开源的一个基于Zookeeper的客户端框架,它对Zookeeper的API进行了封装,提供了更高级别的抽象,使得开发者能够更方便地与Zookeeper进行交互。 标题提到的“项目加入Zookeeper的依赖包(Curator...
而Curator则是Zookeeper的一个客户端库,为开发者提供了更高级别的抽象和工具,简化了Zookeeper的使用。 Zookeeper 3.4.6是其稳定且广泛采用的一个版本,它提供了丰富的API和强大的一致性模型。在这个版本中,...
本文将详细阐述Zookeeper的核心功能、客户端应用以及集群管理,特别关注如何使用官方Java客户端和Apache Curator框架。 首先,要使用Zookeeper的Java客户端,我们需要在项目中添加相应的依赖。如文中所示,可以引入...
Curator是Netflix公司开源的一个针对ZooKeeper的高级Java客户端框架。它不仅简化了ZooKeeper的使用,还提供了丰富的抽象和工具类,使得开发者能够更加专注于业务逻辑而不用过多关注ZooKeeper的具体实现细节。Curator...
Curator是Netflix开源的ZooKeeper客户端框架,它提供了一套高级API来简化ZooKeeper客户端的使用。Curator封装了许多常见的操作,使得开发者可以更加方便地利用ZooKeeper的特性,无需深入底层细节。Curator的常用API...
开源客户端框架Curator为使用Zookeeper提供了更方便的编程接口。 Zookeeper在实际的应用场景中可以用于实现统一命名服务、配置管理、集群管理、共享锁、队列管理、障碍墙、互斥锁、读写锁等多种功能,这些都是...
Apache Curator是Facebook开源的Zookeeper客户端,其设计目标是提供一个更加易用、功能强大且稳定的Zookeeper客户端框架。它不仅包含了基本的Zookeeper操作,还提供了一套完整的解决方案,包括分布式锁、分布式...
开源客户端框架Curator作为Zookeeper的高级封装,简化了Zookeeper客户端的编程模型,被广泛用于生产环境中。 Zookeeper的应用场景非常广泛,包括但不限于统一命名服务(NameService)、配置管理(Configuration ...
在本篇文章中,我们将深入探讨如何利用Curator这个流行的开源框架,实现基于ZooKeeper的分布式锁。 一、ZooKeeper分布式锁概述 分布式锁是解决分布式环境下资源同步问题的关键工具。在多客户端环境中,为了保证...
Curator是Apache开源的一个Zookeeper客户端连接和操作的组件,Curator框架在Zookeeper原生API接口上进行二次包装。提供ZooKeeper各种应用场景:比如:分布式锁服务、集群领导选举、共享计数器、缓存机制、分布式队列...
Curator是Facebook开源的一个Zookeeper客户端库,它提供了更高级别的抽象和实用工具,简化了Zookeeper的使用。例如,Curator提供了分布式锁、领导选举、配置管理等功能,使得开发人员能够更方便地构建可靠的分布式...
在示例代码中,我们看到使用了Curator框架,它是一个开源的Zookeeper客户端库,封装了Zookeeper的复杂操作,简化了Zookeeper编程。Curator提供了现成的分布式锁实现,如`InterProcessMutex`和`...
该项目基于成熟的开源产品Quartz和Zookeeper及其客户端Curator进行二次开发。 ddframe其他模块也有可独立开源的部分,之前当当曾开源过dd-soa的基石模块DubboX。elastic-job和ddframe关系见下图Elastic-Job 主要...
5. ** curator-recipes**:Curator是Facebook开源的一套Zookeeper客户端工具集,包含了多种高级的Zookeeper使用模式,如Leader选举、分布式锁等。对应的jar包有`curator-recipe-x.x.x.jar`。 6. ** Zookeeper服务器...
为了方便开发者使用Zookeeper,社区提供了多种开源客户端库,其中最著名的是Curator和ZkClient。Curator由于其强大的功能和广泛的社区支持而成为全球应用最广泛的Zookeeper客户端库。 ### Zookeeper的应用场景 1. ...
ZooKeeper的java客户端有zk自带的zkclient和Apache开源的Curator。 ZooKeeper提供了文件系统通知机制,Zookeeper提供一个多层级的节点命名空间(节点称为znode)。与文件系统不同的是,这些节点都可以设置关联的...
本书的第二部分还介绍了C语言客户端的使用以及Curator框架,它是对ZooKeeper API的一个高级封装库,简化了客户端的开发工作。 在第三部分中,“第9章ZooKeeper内部原理”和“第10章运行ZooKeeper”深入探讨了...