/idworker

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

Primary LanguageJavaApache License 2.0Apache-2.0

idworker - 基于zookeeper,snowflake的分布式统一ID生成工具

Build Status Coverage Status Maven Central License

是什么

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

怎么用

Maven

<dependency>
  <groupId>com.imadcn.framework</groupId>
  <artifactId>idworker</artifactId>
  <version>1.1.0</version>
</dependency>

XML配置

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:idworker="http://code.imadcn.com/schema/idworker"
	xsi:schemaLocation="
        http://www.springframework.org/schema/beans 
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://code.imadcn.com/schema/idworker
        http://code.imadcn.com/schema/idworker/idworker.xsd">
        
    <idworker:registry id="zkRegistryCenter" server-lists="host1:port1,host2:port2"/>
    <idworker:generator id="snowflakeGenerator" registry-center-ref="zkRegistryCenter" />
</beans>

API

@Autowired
public IdGenerator generator;

public void id() {
    long id = generator.nextId();
    long[] ids = generator.nextId(100_000);
}

配置参考

<idworker:registry /> 注册中心配置,如zookeeper

属性 类型 必填 缺省值 描述
id String Spring容器中的ID
server-lists String 连接Zookeeper服务器的列表
包括IP地址和端口号
多个地址用逗号分隔
如: host1:2181,host2:2181
namespace String idworker Zookeeper的命名空间
base-sleep-time-milliseconds int 1000 等待重试的间隔时间的初始值
单位:毫秒
max-sleep-time-milliseconds int 3000 等待重试的间隔时间的最大值
单位:毫秒
max-retries int 3 最大重试次数
session-timeout-milliseconds int 60000 会话超时时间
单位:毫秒
connection-timeout-milliseconds int 15000 连接超时时间
单位:毫秒
digest String 连接Zookeeper的权限令牌
缺省为不需要权限验证

<idworker:generator /> ID生成策略配置

属性 类型 必填 缺省值 描述
id String Spring容器中的ID
registry-center-ref String 注册中心SpringBeanRef
group String default 分组名,可以为不同业务分配分组,独立注册