Closed cuizhexin closed 10 months ago
可以通过以下动态库,动态注册 WorkerId:
https://github.com/yitter/IdGenerator/releases/download/v1.3.3/workeridgo_lib_v1.3.3.zip
// 注册一个 WorkerId,会先注销所有本机已注册的记录 // address: Redis连接地址,单机模式示例:127.0.0.1:6379,哨兵/集群模式示例:127.0.0.1:26380,127.0.0.1:26381,127.0.0.1:26382 // password: Redis连接密码 // db: Redis指定存储库,示例:1 // sentinelMasterName: Redis 哨兵模式下的服务名称,示例:mymaster,非哨兵模式传入空字符串即可 // minWorkerId: WorkerId 最小值,示例:30 // maxWorkerId: WorkerId 最大值,示例:63 // lifeTimeSeconds: WorkerId缓存时长(秒,3的倍数),推荐值15 extern GoInt32 RegisterOne(char server, char password, GoInt32 db, char* sentinelMasterName, GoInt32 minWorkerId, GoInt32 maxWorkerId, GoInt32 lifeTimeSeconds);
1、此现象出现场景 :.NetCore 6.0 部署在IIS下,应用池设置多个工作进程 2、 代码: 初始化时配置了workID
// 配置雪花Id算法机器码
YitIdHelper.SetIdGenerator(new IdGeneratorOptions
{
SeqBitLength = 10,
WorkerId = 8 // 取值范围0~63,默认1
});
在大批量非多线程插入时,调用 YitIdHelper.NextId()出现重复