对于分布式的全局id,这里并没有采用常见的雪花算法,而是在当前版本用到了全部的64big位,数据持久化部分是基于数据库,内存部分采用双buffer的方式进行数据刷新。对外仅提供两个参数进行buffer刷新速度和buffer大小调整。
默认情况下是不启用全局id的,如果要启用全局,则需要先进行开启,并设置buffer刷新比率和大小。开启后,则会在对应的库中创建一个全局id表:neo_id_generator。
/**
* 开启全局id生成器,默认buffer大小是10000,刷新比率是0.2
*/
public void openUidGenerator(){}
public void openUidGenerator(Integer stepSize, Float refreshRatio){}
CREATE TABLE `neo_id_generator` (
`id` int(11) NOT NULL,
`uuid` bigint(20) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;