app开发者平台在数字化时代的重要性与发展趋势解析
942
2023-03-03
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小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~