Curator counters
2019独角兽企业重金招聘Python工程师标准>>>
这个比较好理解,分布式数字,类似AtomicInteger系列,Curator有2个实现:
第一个:
package curator.counters;import org.apache.curator.RetryPolicy;
import org.apache.curator.framework.CuratorFramework;
import org.apache.curator.framework.CuratorFrameworkFactory;
import org.apache.curator.framework.recipes.shared.SharedCount;
import org.apache.curator.framework.recipes.shared.SharedCountListener;
import org.apache.curator.framework.recipes.shared.SharedCountReader;
import org.apache.curator.framework.state.ConnectionState;
import org.apache.curator.retry.ExponentialBackoffRetry;public class SharedCounterDemo {public static void main(String[] args) throws Exception {RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000, 3);final CuratorFramework client = CuratorFrameworkFactory.builder().connectString("127.0.0.1:2181").sessionTimeoutMs(5000).connectionTimeoutMs(10000).retryPolicy(retryPolicy).namespace("test").build();client.start();SharedCount count = new SharedCount(client,"/cut",0);count.start();count.addListener(new SharedCountListener(){@Overridepublic void stateChanged(CuratorFramework client, ConnectionState newState) {}@Overridepublic void countHasChanged(SharedCountReader sharedCount, int newCount) throws Exception {System.err.println("sharedCount.getCount : "+sharedCount.getCount());System.err.println(newCount);}});Thread.currentThread().sleep(5000);count.setCount(5);System.in.read();}}
第二个:
package curator.counters;import org.apache.curator.RetryPolicy;
import org.apache.curator.framework.CuratorFramework;
import org.apache.curator.framework.CuratorFrameworkFactory;
import org.apache.curator.framework.recipes.atomic.AtomicValue;
import org.apache.curator.framework.recipes.atomic.DistributedAtomicInteger;
import org.apache.curator.retry.ExponentialBackoffRetry;
import org.apache.curator.retry.RetryNTimes;public class DistributedAtomicIntegerDemo {public static void main(String[] args) throws Exception {RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000, 3);final CuratorFramework client = CuratorFrameworkFactory.builder().connectString("127.0.0.1:2181").sessionTimeoutMs(5000).connectionTimeoutMs(10000).retryPolicy(retryPolicy).namespace("test").build();client.start();DistributedAtomicInteger atomicInteger = new DistributedAtomicInteger(client,"/autlog",new RetryNTimes(32,1000));AtomicValue<Integer> rc = atomicInteger.add(8); System.out.println("success:" + rc.succeeded() + ";before:" + rc.preValue() + ";after:" + rc.postValue());System.in.read();}}
转载于:https://my.oschina.net/u/1378390/blog/297059
Curator counters相关推荐
- zookeeper客户端库curator分析
zookeeper客户端库curator分析 前言 综述 zookeeper保证 理解zookeeper的顺序一致性 之前使用zookeeper客户端踩到的坑 curator 连接保证 连接状态监控以 ...
- Curator Cache
1.Curator Cache 与原生ZooKeeper Wacher区别 原生的ZooKeeper Wacher是一次性的:一个Wacher一旦触发就会被移出,如果你想要反复使用Wacher,就要在 ...
- 十六、curator recipes之DistributedIdQueue
简介 curator实现了一种分布式ID队列,也是遵循FIFO原则,比普通队列新增的一个点是ID队列可以根据ID对队列元素进行操作,比如移除该元素. 官方文档:http://curator.apach ...
- Zookeeper开源客户端框架Curator的简单使用
为什么80%的码农都做不了架构师?>>> Curator最初由Netflix的Jordan Zimmerman开发, Curator提供了一套Java类库, 可以更容易的使用Z ...
- java curator_[java,zk]在 linux 上快速搭建 zookeeper curator 开发环境
在这篇博客中简单介绍一下,如何快速的在 linux 操作系统上搭建使用 zookeeper 客户端 curator 编程的单机环境. 在前几篇博客中,介绍的是使用 zookeeper 原生提供的 AP ...
- Curator: ZooKeeper的使用配方
Curator: ZooKeeper的使用配方 ZooKeeper 作为分布式的存储方式, 有很多种使用场景, 把典型的使用场景提取出来, 成为"配方", 方便用户参考. Cura ...
- 【ZK-curator使用异常】KeeperErrorCode = Unimplemented for /***
[ZK-curator使用异常]KeeperErrorCode = Unimplemented for /*** 参考文章: (1)[ZK-curator使用异常]KeeperErrorCode = ...
- 五、curator recipes之选举主节点Leader Latch
简介 在分布式计算中,主节点选举是为了把某个进程作为主节点来控制其它节点的过程.在选举结束之前,我们不知道哪个节点会成为主节点.curator对于主节点选举有两种实现方式,本文示例演示Latch的实现 ...
- 聊聊、Zookeeper 客户端 Curator
[Curator] 和 ZkClient 一样,Curator 也是开源客户端,Curator 是 Netflix 公司开源的一套框架. <dependency><groupId ...
最新文章
- DBUtils (30)
- java amp amp 怎么用,java中amp;与amp;amp;的区别
- 五天面试 Google、Facebook、Airbnb 等硅谷五家顶级公司,我是如何都拿到 Offer 的
- 3.Vue 条件渲染
- eclipse 中创建maven工程问题(常见)
- Split Temporary Variable(分解临时变量)
- kotlin获取属性_Kotlin程序| 属性获取器和设置器方法的示例
- Oracle——集合运算
- Django引入静态文件
- centos卸载不必要的程序_新手教程:从Mac上的启动台Launchpad删除应用程序
- pygame 绘制爱心函数 r = 1-cos(θ). Tag: python | 图形界面 | GUI
- 酶促反应动力学_酶促反应动力学讲解.ppt
- C语言入门 | c语言基础知识
- 10G 82599EB 网卡测试优化 ethtool
- java后台 apiV3 对接微信app支付
- Java对接混合支付、退款、提现心得
- SSL证书一年需要多少钱
- 今天ifttt很火呀
- java能盗号吗_CVE-2017-8759漏洞新利用:Java Keylogger盗号木马分析
- 电子营业执照可信认证服务商--北京商兆科技有限公司 报名参与2022身份识别技术大会