Idworker Versions Save

idworker 是一个基于zookeeper和snowflake算法的分布式ID生成工具,通过zookeeper自动注册机器(最多1024台),无需手动指定workerId和datacenterId

1.6.0

1 year ago

Maven依赖

<dependency>
    <groupId>com.imadcn.framework</groupId>
    <artifactId>idworker</artifactId>
    <version>1.6.0</version>
</dependency>
  • 更新
    • [新增] 序列化方式现在 可选 fastjson 或 jackson,此包依赖现在由使用者程序提供,详见 serialize 字段
    • [新增] 现在可以自主控制是否使用节点缓存数据,详见 cacheable 字段
    • [优化] 调整了节点缓存算法,对于IP地址的变化,不再做检查
    • [优化] 修复BUG

1.5.0

3 years ago

Maven依赖

<dependency>
    <groupId>com.imadcn.framework</groupId>
    <artifactId>idworker</artifactId>
    <version>1.5.0</version>
</dependency>
  • 更新
    • [新增] curator升级至4.3.0,更新API
  • 注意:此版本与2.x的curator不兼容,无法通过exclude的方式降级使用。如果项目中curator版本为2.x,请使用1.4.0版本,后续两个版本会同步更新

1.4.0

4 years ago

Maven依赖

<dependency>
    <groupId>com.imadcn.framework</groupId>
    <artifactId>idworker</artifactId>
    <version>1.4.0</version>
</dependency>
  • 更新
    • [新增] 现在可以选择是否将节点信息持久化注册到zookeeper,持久化存储及其策略会依赖于本地缓存文件,请根据实际使用情况来选择是否开启, 配置参考:idworker:generator # durable,generator:snowflake # durable

1.3.2

4 years ago

Maven依赖

<dependency>
    <groupId>com.imadcn.framework</groupId>
    <artifactId>idworker</artifactId>
    <version>1.3.2</version>
</dependency>
  • 更新
    • [优化] 现在,系统正常退出时,会移除ZK当前申请的节点,尽可能利用有限的节点数,异常退出时,会依赖本地缓存中的信息
  • 注意
    • 请查看1.3.1版本中的更新说明

1.3.1

4 years ago

Maven依赖

<dependency>
    <groupId>com.imadcn.framework</groupId>
    <artifactId>idworker</artifactId>
    <version>1.3.1</version>
</dependency>
  • 更新
    • [重构] 重新设计了workerId分配的逻辑,现在向zookeeper申请workerId时,采用永久性节点,并同步缓存节点信息至本地文件,节点信息会每3s上报至zookeeper
    • [重构] 重写了snowflake算法核心逻辑,不再支持low-concurrency模式配置,重构后的算法兼容"low-concurrency"模式
    • [优化] 重写了部分业务代码
  • 注意
    • 由于重写了逻辑,此版本删除了部分配置文件选项,文档已同步更新,API已做过期标记
    • 本地缓存文件生效判断逻辑:如果缓存中NodeId, GroupName, HostName, IP同ZK相应节点中的数据相等,会使用此workerId,不再申请新的workerId
    • 完全离线模式暂不支持(即:本地有缓存文件,zk无法连接,直接使用本地缓存数据的模式),如果提示workerId已经分配完毕,请根据节点信息中的updateTime手动删除节点数据,后续提供api支持

1.3.0

4 years ago

1.2.5

5 years ago

Maven依赖

<dependency>
    <groupId>com.imadcn.framework</groupId>
    <artifactId>idworker</artifactId>
    <version>1.2.5</version>
</dependency>
  • 更新
    • [新增] snowflake策略低并发算法 #8(雪花算法默认实现在调用频次低的情况下,都是垮毫秒生成,导致sequence全是0,最终数据都是偶数,奇偶不平均。此模式下sequence全局自增,同ms内溢出后,等待下1ms,而不是每次都置零。)可在配置中打开标签 low-concurrency=true(默认为false)
    • [优化] 其他增强

1.2.0

5 years ago

Maven依赖

<dependency>
    <groupId>com.imadcn.framework</groupId>
    <artifactId>idworker</artifactId>
    <version>1.2.0</version>
</dependency>
  • 更新
    • [新增] 新的ID生成策略[64进制UUID],将UUID缩短为22位长度的ID,取值范围[a-zA-Z0-9_\-]
    • [新增] 字符串格式ID生成API,snowflake模式可以支持长度为固定20位的ID
    • [新增] SpringNamespaceHandler现在可以配置Id生成策略,默认为snowflake策略,可以修改为64进制UUID策略(compress_uuid)
    • [新增] 新的命名空间,<generator:xxx />更加快速的配置ID生成策略
    • [优化] 覆盖了部分功能的单元测试
    • [优化] 升级部分maven依赖至新版
    • [修复] 功能性BUG修复

1.1.5

6 years ago

Maven依赖

<dependency>
    <groupId>com.imadcn.framework</groupId>
    <artifactId>idworker</artifactId>
    <version>1.1.5</version>
</dependency>
  • 更新
    • [修复] 修复BUG #5
    • [增强] 优化代码,提升稳定性

1.1.0

6 years ago

Maven依赖

<dependency>
    <groupId>com.imadcn.framework</groupId>
    <artifactId>idworker</artifactId>
    <version>1.1.0</version>
</dependency>
  • 更新
    • [新增] zk状态监听,现在与zk断开后会暂停生成ID,直到重连成功
    • [新增] 新的接口,新的设计模式,以解决不合理的设计
    • [增强] 注册时,新增写入session等,重新注册时候判断节点是否是之前的节点,不再浪费节点
    • [增强] 采用embed zookeeper来进行单元测试