# leaf-snowflake **Repository Path**: hwlin/leaf-snowfake ## Basic Information - **Project Name**: leaf-snowflake - **Description**: 仿leaf方案 分布式 ID 生成器 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2019-04-15 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # leaf-snowfal #### 介绍 仿leaf方案 分布式 ID 生成器,实现功能: - 实现 snowfal 算法:第一位未使用(可作为long的符号位)+ 41位为毫秒级时间 + 10位服务器ID(WorkerID)+ 12位该毫秒内的当前毫秒内的计数 - 启动时使用 zookeeper 获得 机器ID (workerId) - 本地缓存机器ID ,用于快速启动及减轻zookeeper压力。并且有 IP及port端口检查,防止错误读取缓存使用同个 机器ID #### 软件架构 使用spring-boot 自动配置。 - leaf-snowfake-app 实际ID生成算法模块 - leaf-snowfake-autoconfigure 自动配置模块 - leaf-snowflake-starter 快速引入启动starter #### 使用说明 1. 引入 leaf-snowflake-starter 依赖 ``` com.wlin.leaf leaf-snowflake-starter ``` 2. 在配置文件中配置 idworker.enable 配置项 ``` idworker.enable= true ``` 3. 注入使用 ID生成器 ``` @Autowired private TwitterIdWorker idWorker; ... { idWorker.nextId(); } ``` 具体可参考 sample 模块。