时间:2021-05-20
系统唯一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开始,还没有直接可以修改指定数字那里开始,只能写程序一点点的创建,直到达到你要想的数据 ,这是它最大的弊端。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
SpringBoot中全局唯一流水号ID生成器集成实验概述流水号生成器(全局唯一ID生成器)是服务化系统的基础设施,其在保障系统的正确运行和高可用方面发挥着重要
有时我们不依赖于数据库中自动递增的字段产生唯一ID,比如多表同一字段需要统一一个唯一ID,这时就需要用程序来生成一个唯一的全局ID。UUID从Java5开始,U
工作中经常会有生成唯一字符串的需求。通常最容易想到的是UUID。UUID的唯一性毋庸置疑,但是32位的长度也容易让人退避三舍。也曾经想过参考《短网址生成方案》来
PHPsession用法其实很简单它可以把用户提交的数据以全局变量形式保存在一个session中并且会生成一个唯一的session_id,这样就是为了多了不会产
一、主键id的生成数据库表里通常都会有一个主键id,来作为这条数据的唯一标识。常见的方式1.数据库自动增长这种很常见了,可以做到全库唯一。因为id是天然排序的,