| @@ -193,8 +193,19 @@ QQ群:646049993 | |||||
| 🔍 唯一ID生成器,依赖WorkerId,当业务服务需要水平无差别复制时,就要求它能自动注册全局唯一WorkerId,然后才能根据它生产唯一ID。 | 🔍 唯一ID生成器,依赖WorkerId,当业务服务需要水平无差别复制时,就要求它能自动注册全局唯一WorkerId,然后才能根据它生产唯一ID。 | ||||
| 🔍 本算法提供一个开源的动态库(go语言实现),能在容器 k8s(或其它容器化集群) 环境下,通过 redis 自动注册 WorkerId。动态库提供的C接口方法可参考 | |||||
| 源码文件 [ Tools/AutoRegisterWorkerId/lib/yitidgengo.h ] | |||||
| 🔍 本算法提供一个开源的动态库(go语言实现),能在容器 k8s(或其它容器化集群) 环境下,通过 redis 自动注册 WorkerId。由于动态库文件较大,目前源码中不含编译后的 so (linux)和 dll(windows)文件。 | |||||
| 动态库接口定义: | |||||
| ``` | |||||
| // 注册一个 WorkerId,会先注销所有本机已注册的记录 | |||||
| extern __declspec(dllexport) GoInt32 RegisterOne(char* ip, GoInt32 port, char* password, GoInt32 maxWorkerId); | |||||
| // 注销本机已注册的 WorkerId | |||||
| extern __declspec(dllexport) void UnRegister(); | |||||
| // 检查本地WorkerId是否有效(0-有效,其它-无效) | |||||
| extern __declspec(dllexport) GoInt32 Validate(GoInt32 workerId); | |||||
| ``` | |||||
| redis作用 | redis作用 | ||||