文档章节

Curator counters

蘑菇头老大
 蘑菇头老大
发布于 2014/08/01 13:13
字数 195
阅读 102
收藏 0

这个比较好理解,分布式数字,类似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(){

			@Override
			public void stateChanged(CuratorFramework client, ConnectionState newState) {
				
			}

			@Override
			public 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();
	}

}

 

© 著作权归作者所有

上一篇: Curator Barrier
下一篇: Curator Framework
蘑菇头老大
粉丝 2
博文 20
码字总数 7628
作品 0
杭州
私信 提问
Apache Curator 2.10.0 和 3.1.0 发布

Apache Curator 今天发布两个新版本,分别是 2.10.0 和 3.1.0 。 其中 2.10.0 改进内容: Bug [CURATOR-208] - InterProcessSemaphoreV2 swallows InterruptedException [CURATOR-209] - Ba......

红薯
2016/02/15
3.9K
0
使用Curator实现的zookeeper分布式锁出现的Unimplemented for {root.path}

问题描述 Curator使用 ZooKeeper 作为分布式锁,启动时发生该异常。 Curator 客户端版本:curator-recipes-2.10.0 ZooKeeper 服务器版本:3.4.13 异常日志 以及 问题分析 UnimplementedExcep...

loubobooo
2019/02/27
160
0
跟着实例学习ZooKeeper的用法: Curator扩展库

还记得Curator提供哪几个组件吗? 我们不妨回顾一下: Recipes Framework Utilities Client Errors Extensions 前面的例子其实前五个组件都涉及到了, 比如Utilities例子的TestServer, Clien...

longbadx
2015/02/11
2.2K
0
Apache Curator Zookeeper客户端

Curator是Netflix公司开源的一个Zookeeper客户端,与Zookeeper提供的原生客户端相比,Curator的抽象层次更高,简化了Zookeeper客户端的开发量。 1.Zookeeper安装部署 Zookeeper的部署很简单,...

laigous
2017/03/02
148
0
ZooKeeper和Curator的部署结构选择

zk在正式环境部署时,是需要选择3台独立的机器部署的.都需要依赖Java运行环境. Curator是zk的一层封装,也需要Java运行环境.Curator对外提供Thrift服务. 方案A:让zk和Curator一对一搭配部署.使...

sangechen
2015/03/16
5
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring AOP-06-切入点类型

切入点是匹配连接点的拦截规则。之前使用的是注解@Pointcut,该注解是AspectJ中的。除了这个注解之外,Spring也提供了其他一些切入点类型: • 静态方法切入点StaticMethodMatcherPointcut •...

moon888
昨天
90
0
Class Loaders in Java

1. Introduction to Class Loaders Class loaders are responsible for loading Java classes during runtime dynamically to the JVM (Java Virtual Machine). Also, they are part of the ......

Ciet
昨天
68
0
以Lazada为例,看电商系统架构演进

什么是Lazada? Lazada 2012年成立于新加坡,是东南亚第一电商,2016年阿里投资10亿美金,2017年完成对lazada的收购。 业务模式上Lazada更偏重自营,类似于亚马逊,自建仓储和为商家提供服务...

春哥大魔王的博客
昨天
60
0
【自用】 Flutter Timer 简单用法

dart: void _startTime() async { _timer = Timer(Duration(seconds: sec), () { fun(xxx,yyy,zzz); }); } @override void dispose() { _timer.cancel()......

Tensor丨思悟
昨天
65
0
计算机实现原理专题--自动化(六)

目前实现的加减法器可以扩充到更高位宽的数值范围,不仅可以实现连续n个数的相加减,还可以实现其中几个数的相加减,并保存相应的结果。但是还不能应对某些场景,例如需要复用中间的临时结果...

FAT_mt
昨天
58
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部