Skip to content

Latest commit

 

History

History
42 lines (35 loc) · 1.64 KB

README.md

File metadata and controls

42 lines (35 loc) · 1.64 KB

核心库使用说明 / English

方式1:手动指定(适用于节点数少,希望或有能力自行维护"进程或节点标识唯一性"的应用):

//步骤1.初始化(仅需一次,一般即应用启动时)
//datacenterId和workerId被用来唯一标识一个进程or节点,这两者的组合必须是'唯一'的
LocalGuid guid = LocalGuid.init(0/*datacenterId*/, 0/*workerId*/);

//步骤2.获取id (snowflake算法)
//方式1:
Long id1 = guid.next();

//方式2:
Long id2 = LocalGuid.instance().next();

//此外,框架也集成了两种性能优越的UUID算法
//方式1 (FastUUID算法):
String uuid1 = LocalGuid.uuid();

//方式2 (改良过的JDK UUID):
String uuid2 = LocalGuid.uuid(true/*是否以-区隔*/, false/*是否采用极速模式*/);

方式2(推荐*):结合分布式协调者使用("进程标识唯一性"自动得到维护):

//步骤1.初始化(仅需一次,采用zookeeper作为分布式协调者)
LocalGuid guid = LocalZkGuid.init("localhost:2181"/*zk地址*/)
//步骤2.获取id(同 '方式1的步骤2',略)

方式3(适用于同网段):通过识别本机IP("节点标识唯一性"自动得到维护)或指定IP 来使用:

//步骤1.初始化(仅需一次,一般即应用启动时)
//指定本机IP前缀(多网卡场景,辅助挑选出正确的ip,目前仅支持IPV4)
LocalGuid guid
= LocalGuid.initWithLocalIp("192.168.1");
//或 指定本机IP前缀、同时指定IP段(目前仅支持'第3段')
= LocalGuid.initWithLocalIp("192.168", 1);//在 192.168.1.* 中挑选

//步骤2.获取id(同 '方式1的步骤2',略)

< 回索引