当前位置: 首页 > news >正文

广州电子商城网站建设莆田seo

广州电子商城网站建设,莆田seo,做时时彩网站需要加盟,全球外贸网站制作教程2019独角兽企业重金招聘Python工程师标准>>> curator-recipes模块提供了zookeeper的一些典型应用场景的使用参考。在curator中,事件监听的支持由curator-recipes模块提供。下面将对这些监听器进行介绍。 监听客户端连接状态 Curator客户端与zookeeper连接…

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

curator-recipes模块提供了zookeeper的一些典型应用场景的使用参考。在curator中,事件监听的支持由curator-recipes模块提供。下面将对这些监听器进行介绍。

监听客户端连接状态

Curator客户端与zookeeper连接的过程其实是一个异步过程,Curator为我们提供了一个监听器监听连接的状态,根据连接的状态做相应的处理。

    private CountDownLatch countDownLatch = new CountDownLatch(1);@Testpublic void testClientConnStateListener() throws InterruptedException {int retryIntervalMs = 1000;RetryPolicy retryPolicy = new RetryForever(retryIntervalMs);CuratorFramework testConnStateListenerClient = CuratorFrameworkFactory.builder().connectString(ZookeeperHelper.zkAddress).sessionTimeoutMs(ZookeeperHelper.sessionTimeout).retryPolicy(retryPolicy).build();//添加监听器testConnStateListenerClient.getConnectionStateListenable().addListener(new ConnectionStateListener() {@Overridepublic void stateChanged(CuratorFramework client, ConnectionState newState) {if (newState == ConnectionState.CONNECTED) {try {System.out.println("connected established");Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}countDownLatch.countDown(); //释放锁} else {System.out.println("connection state : " + newState.name());}}});testConnStateListenerClient.start();//加锁,暂不往下执行countDownLatch.await();testConnStateListenerClient.close();}

NodeCache

可以监到当前节点数据的变化

 @Testpublic void testNodeDataListener() throws Exception {String node_to_listen = "/listened_node";client.create().creatingParentContainersIfNeeded() //自动递归创建父节点.withMode(CreateMode.PERSISTENT).forPath(node_to_listen);NodeCache nodeCache = new NodeCache(client, node_to_listen, false);nodeCache.getListenable().addListener(new NodeCacheListener() {@Overridepublic void nodeChanged() throws Exception {System.out.println("Node data is changed, new data: " +new String(nodeCache.getCurrentData().getData()));}});nodeCache.start();Thread.sleep(1000);client.setData().forPath(node_to_listen, "new data".getBytes());//更新节点的数据Thread.sleep(1000);nodeCache.close();client.delete().deletingChildrenIfNeeded().forPath(node_to_listen);}

PathChildrenCache

(1)可以监听到当前节点下的孩子节点的变化,但是孩子节点下面的孩子节点的事情不能监听。 (2)可以监听到的事件:节点创建、节点数据的变化、节点删除等

 @Testpublic void testChildrenNodeListener() throws Exception {String parent_node = "/parent_node";String child_node = parent_node + "/child";PathChildrenCache pathChildrenCache = new PathChildrenCache(client, parent_node, false);PathChildrenCacheListener pathChildrenCacheListener = new PathChildrenCacheListener() {@Overridepublic 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;}}};pathChildrenCache.getListenable().addListener(pathChildrenCacheListener);pathChildrenCache.start();client.create().creatingParentContainersIfNeeded().withMode(CreateMode.PERSISTENT).forPath(child_node);Thread.sleep(1000);client.setData().forPath(child_node, "new data".getBytes());//更新节点的数据Thread.sleep(1000);pathChildrenCache.close();client.delete().deletingChildrenIfNeeded().forPath(parent_node);}

TreeCache

(1)可以监听到指定节点下所有节点的变化。比如当前节点是”/node”,添加了TreeCacheListener后,不仅可以监听节点 "/node/child" 节点的变化,还能监听孙子节点 "/node/child/grandson"的变化。
(2)可以监听到的事件:节点创建、节点数据的变化、节点删除等

@Testpublic void testTreeListener() throws Exception {String parent_path = "/tree_node_parent";client.create().creatingParentContainersIfNeeded().withMode(CreateMode.PERSISTENT).forPath(parent_path);Thread.sleep(1000);TreeCache treeCache = new TreeCache(client, parent_path);treeCache.start();treeCache.getListenable().addListener(new TreeCacheListener() {@Overridepublic void childEvent(CuratorFramework curatorFramework, TreeCacheEvent event) throws Exception {switch (event.getType()) {case NODE_ADDED:System.out.println("TreeNode added: " + event.getData().getPath() + " , data: " + new String(event.getData().getData()));break;case NODE_UPDATED:System.out.println("TreeNode updated: " + event.getData().getPath() + " , data: " + new String(event.getData().getData()));break;case NODE_REMOVED:System.out.println("TreeNode removed: " + event.getData().getPath());break;default:break;}}});//创建孩子节点String child_path = parent_path + "/child";client.create().creatingParentContainersIfNeeded().withMode(CreateMode.PERSISTENT).forPath(child_path);Thread.sleep(1000);//创建孙子节点String grandson_path = child_path + "/grandson";client.create().creatingParentContainersIfNeeded().withMode(CreateMode.PERSISTENT).forPath(grandson_path);Thread.sleep(1000);//更新孙子节点数据client.setData().forPath(grandson_path, "new_data".getBytes());Thread.sleep(1000);//删除孙子节点client.delete().deletingChildrenIfNeeded().forPath(grandson_path);Thread.sleep(1000);treeCache.close();client.delete().deletingChildrenIfNeeded().forPath(parent_path);}

转载于:https://my.oschina.net/thinwonton/blog/1036321

http://www.lbrq.cn/news/2561833.html

相关文章:

  • 开发区建设集团网站sem推广托管公司
  • 上海网站设计制作公司网络营销推广方法
  • 长沙网站开发方案站长工具高清无吗
  • 郑州高端网站模板学做电商需要多少钱
  • 深圳网站建设公司排行榜seo博客大全
  • 建电子商城网站室内设计网站
  • 安徽营销型网站建设微信公众号怎么推广
  • 网页制作网站建设实战大全南京百度推广开户
  • 网站推广策划评估指标有哪些热词分析工具
  • 网站相册优化公众号开发
  • 公司网站在哪备案十大网站排行榜
  • 口碑好的网站设计制作价格网站模板下载免费
  • 网站免费主机中国国家培训网是真的吗
  • 网站开发流程进度表2345浏览器网站进入
  • 郑州网站建设公司电话网站推广优化的方法
  • 软件开发工程师证书含金量高吗seo教程技术资源
  • 网站设计品金华网站推广
  • 台州网站建设 网站制作 网站设计《新闻联播》今天
  • 如何做网站卖家具竞价排名的弊端
  • 手机网站建设沈阳网站制作开发
  • 施工企业安全生产责任制度seo快速排名优化方式
  • 做外贸怎样上国外网站优化网站推广
  • 网站后台进不去的原因网站制作的基本流程
  • 上海网站建设公司联系方式深圳博惠seo
  • 企业网站里面的qq咨询怎么做建一个企业网站多少钱
  • 凡科建站公司百度seo网站优化
  • 电脑怎样做网站网络推广的工作好做吗
  • 网站建设合同要存档几年武汉服装seo整站优化方案
  • 网站需要怎么做的如何自己做网站
  • 个人建网站首选什么域名好域名邮箱 400电话
  • cv弹窗,退款确认弹窗
  • 【Android】RecyclerView实现新闻列表布局(1)适配器使用相关问题
  • 深入 Go 底层原理(十一):Go 的反射(Reflection)机制
  • 在线免费的AI文本转语音工具TTSMaker介绍
  • Excel文件解析
  • 可计算存储(Computational Storage)与DPU(Data Processing Unit)的技术特点对比及实际应用场景分析