Zookeeper全局唯一ID生成方案解析

网友投稿 942 2023-03-03

Zookeeper全局唯一ID生成方案解析

Zookeeper全局唯一ID生成方案解析

系统唯一ID生成分案有很多种,例如:数据库 auto_increment,UUID,Redis生成ID(Redis原子操作INCR和INCRBY),Twiitter的snowflake算法,ZooKeeper生成ID,MongoDb的ObjectId,下面我们就看一下ZooKeeper实现分布式系统唯一ID。

public int idGen() throws Exception {

String zkAddress = "127.0.0.1:2181";

String idNode = "/id";

//重试策略

RetryPolicy retry = new RetryNTimes(3, 2000);

//创建连接客户端

CuratorFramework client = 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);

}

Stat stat = client.setData().withVersion(-1).forPath(idNode);

return stat.getVersion();

}

注意:换了ZooKeeper,数据就要从0开始,还没有直接可以修改指定数字那里开始,只能写程序一点点的创建,直到达到你要想的数据 ,这是它最大的弊端。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:解决jmap命令打印JVM堆信息异常的问题
下一篇:用什么软件写小程序插件(制作小程序用什么编程软件)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~