Zookeeper全局唯一ID生成方案解析
系统唯一ID生成分案有很多种,例如:数据库auto_increment,UUID,Redis生成ID(Redis原子操作INCR和INCRBY),Twiitter的snowflake算法,ZooKeeper生成ID,MongoDb的ObjectId,下面我们就看一下ZooKeeper实现分布式系统唯一ID。
publicintidGen()throwsException{
StringzkAddress="127.0.0.1:2181";
StringidNode="/id";
//重试策略
RetryPolicyretry=newRetryNTimes(3,2000);
//创建连接客户端
CuratorFrameworkclient=CuratorFrameworkFactory.builder().
connectString(zkAddress).
sessionTimeoutMs(5000).
connectionTimeoutMs(10000).
retryPolicy(retry).
build();
//启动客户端
client.start();
if(null==client.checkExists().forPath(idNode)){
client.create().withMode(CreateMode.PERSISTENT)
.forPath(idNode);
}
Statstat=client.setData().withVersion(-1).forPath(idNode);
returnstat.getVersion();
}
注意:换了ZooKeeper,数据就要从0开始,还没有直接可以修改指定数字那里开始,只能写程序一点点的创建,直到达到你要想的数据,这是它最大的弊端。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
热门推荐
1 训练狗狗憋尿
2 狗狗追踪训练
3 狗狗训练要多少钱
5 深圳狗狗训练
6 训练狗狗唤回
7 狗狗叫怎么训练
8 狗狗训练班
10 狗狗社会化训练
11 狗狗叫回训练
12 广州狗狗训练学校
13 狗狗训练躺下
14 狗狗随行训练
15 训练狗狗巡回
16 狗狗要怎么训练
17 狗狗喂食训练
18 训练狗狗躺下