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

 更新时间:2020年12月04日 14:44:56   作者:codedot  
这篇文章主要介绍了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开始,还没有直接可以修改指定数字那里开始,只能写程序一点点的创建,直到达到你要想的数据 ,这是它最大的弊端。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Java程序打印奥林匹克标志方法详解

    Java程序打印奥林匹克标志方法详解

    这篇文章主要介绍了Java程序打印奥林匹克标志方法详解,需要的朋友可以参考下。
    2017-09-09
  • spring boot 命令行启动的方式

    spring boot 命令行启动的方式

    这篇文章主要介绍了spring boot 命令行启动的方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • Java用邻接矩阵存储图的示例代码

    Java用邻接矩阵存储图的示例代码

    邻接矩阵通常采用一个一维数组存储图中节点的信息,采用一个二维数组存储图中节点之间的邻接关系。本文将利用Java实现用邻接矩阵存储图,需要的可以参考一下
    2022-06-06
  • Java中如何获取图片文件格式(后缀)

    Java中如何获取图片文件格式(后缀)

    这篇文章主要介绍了Java中如何获取图片文件格式(后缀),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • Java实现文件读取和写入过程解析

    Java实现文件读取和写入过程解析

    这篇文章主要介绍了Java实现文件读取和写入过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值。,需要的朋友可以参考下
    2019-10-10
  • Java编程之文件读写实例详解

    Java编程之文件读写实例详解

    这篇文章主要介绍了Java编程之文件读写的方法,结合实例形式较为详细的分析了Java文件读写所涉及的类及相应的操作技巧,需要的朋友可以参考下
    2015-12-12
  • MyBatis动态SQL中的trim标签的使用方法

    MyBatis动态SQL中的trim标签的使用方法

    这篇文章主要介绍了MyBatis动态SQL中的trim标签的使用方法,需要的朋友可以参考下
    2017-05-05
  • java Class文件结构解析常量池字节码

    java Class文件结构解析常量池字节码

    这篇文章主要为大家介绍了java Class文件的整体结构解析常量池字节码详细讲解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07
  • struts2数据处理_动力节点Java学院整理

    struts2数据处理_动力节点Java学院整理

    Struts2框架框架使用OGNL语言和值栈技术实现数据的流转处理。下面通过本文给大家分享struts2数据处理的相关知识,感兴趣的朋友参考下吧
    2017-09-09
  • Java动态调用类中方法代码

    Java动态调用类中方法代码

    这篇文章主要介绍了Java动态调用类中方法代码,需要的朋友可以参考下
    2014-02-02

最新评论