nisbos


nisbos-id-generator

<p><strong>一、工具介绍</strong> 基于SnowFlake算法实现的分布式ID生成器。支持手动分配workerId。生成的id具备全局唯一,粗略有序,可反向解码等特性。</p> <p><strong>二、数据结构</strong></p> <ul> <li> <p>毫秒级 时间41位,可以使用2^41/1000/60/60/24/365=69.73, 约可使用69年 数据中心5位, 可部署2^5=32个数据中心 工作机器5位,同一个数据中心可部署2^5=32个服务 序号12位,表示同一机器同一时间(毫秒)内理论上可以产生最多2^12-1=4095个ID序号</p> </li> <li>秒级 时间31位,可以使用2^31/60/60/24/365=68, 约可使用68年 数据中心5位, 可部署2^5=32个数据中心 工作机器5位,同一个数据中心可部署2^5=32个服务 序号22位,表示同一机器同一时间(秒)内理论上可以产生最多2^22-1=4194303个ID序号</li> </ul> <p><strong>三、配置</strong></p> <p>3.1、基于spring boot的项目 在yml或property配置文件中设置所需的参数.(此步骤非必需,若跳过此步骤将生效默认配置); 在启动类上增加@EnableIdGenerator注解即可. 如: <img src="https://www.showdoc.cc/server/api/common/visitfile/sign/83fd1a29a3e8dfb8f6cd71c1938cc3b2?showdoc=.jpg" alt="" /></p> <p>3.2、非spring项目 在项目中增加一个单例类工具类, 如: <img src="https://www.showdoc.cc/server/api/common/visitfile/sign/858b70367863edb908d80a859b0af93f?showdoc=.jpg" alt="" /></p> <p>3.3、在需要的地方注入服务即可使用,如: <img src="https://www.showdoc.cc/server/api/common/visitfile/sign/ed1d61e9a0f56cf92f99a23f03f916af?showdoc=.jpg" alt="" /></p> <p><strong>四、application.yml参数</strong> id.type.second=false Boolean false true-秒级别 false-毫秒级别 id.workerId Integer 0 手动指定工作机器号 id.datacenterId Integer -1 手动指定数据中心, 若不指定则将根据mac地址自动分配一个固定的编号</p>

页面列表

ITEM_HTML