欢迎来到代码驿站!

JAVA代码

当前位置:首页 > 软件编程 > JAVA代码

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

时间:2021-09-01 09:00:14|栏目:JAVA代码|点击:

系统唯一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开始,还没有直接可以修改指定数字那里开始,只能写程序一点点的创建,直到达到你要想的数据 ,这是它最大的弊端。

上一篇:java往php传数据操作方法

栏    目:JAVA代码

下一篇:JavaWeb入门:HttpResponse和HttpRequest详解

本文标题:Zookeeper全局唯一ID生成方案解析

本文地址:http://www.codeinn.net/misctech/171589.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有