项目简介
本项目是基于Golang和gRPC框架构建的Snowflake ID生成系统。Snowflake算法可用于生成分布式唯一ID,本项目的服务端使用Golang实现该算法,借助gRPC框架达成客户端与服务端间的通信,适用于分布式系统和微服务架构中生成唯一ID。
项目的主要特性和功能
- 分布式唯一ID生成:运用Snowflake算法生成全局唯一的ID。
- 可配置性:能通过修改配置文件,灵活调整服务端口号、开始时间戳、机器号位长度、业务位长度、序列位长度和机器id等参数。
- 业务区分:设置不同的service_id可区分不同的业务类型。
- 多语言客户端支持:提供Golang和PHP客户端代码,便于不同语言开发者使用。
安装使用步骤
服务端
- 进入server目录,编译生成可执行文件:
bash go build -o ../bin/id-server
- 将server目录下的app.conf拷贝到../bin目录:
bash cp app.conf ../bin
- 修改app.conf文件,根据需求调整参数:
json { "port":":7890", "epoch":1514736000000, "machine_id_bits":4, "service_id_bits":6, "step_bits":12, "machine_id":0 }
注意事项: - machine_id_bits + service_id_bits + step_bits 必须等于22。
- 如果machine_id_bits为4,machine_id的取值范围是0 - 15(2的4次方),service_id也是同理。
- 不同启动实例的machine_id必须不同,service_id可以重复。
- 可以通过计算service_id,获取不同id的业务类型。
- 启动server。
客户端
暂未提供客户端具体使用步骤,可根据项目中提供的Golang和PHP客户端代码进行使用。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】