分布式主键系统
该系统其实就是个练手的项目,大家不必太在意,项目非常简单,也很方便大家学习go语言。地址:https://github.com/liyouqing666/guid。代码在dev分支。如果大家对grpc基础环境有疑问请移步这里:go集成grpc
一,涉及技术
二,如何快速跑起来
1,配置相关
| 位置 | 内容 |
|---|---|
| /conf/db/ddl.sql | SQL脚本 |
| /etc/*.yml | 配置文件 |
2,项目入口
| 位置 | 内容 |
|---|---|
| /guid.go | 项目启动入口 |
| /server/server.go | 服务入口 |
| /server/gin_server.go | gin服务入口 |
| /service/impl/db_serviceImpl.go | 数据库分布式主键实现 |
| /service/impl/redis_serviceImpl.go | redis分布式主键实现 |
| /service/impl/snow_serviceImpl.go | 雪花算法分布式主键实现 |
3,操作步骤
三,项目设计
1,总体设计
2,详细设计

- grpc设计
syntax = "proto3";
option go_package = "github.com/liyouqing666/guid/pb/guid;guid";
message Req{
string namespace = 1; // 命名空间
TYPE type = 2; // key的类别
enum TYPE{ // 主键类型
SNOW = 0;
REDIS = 1;
DB = 2;
}
}
message Res{
bool flag =1 ; //成功失败标志
string key = 2; //返回的全局id实体
}
service PbGuid{
rpc GetKey(Req) returns (Res);
}
- 释义:
3,rpc远程调用
4,gin服务 restapi调用
{
"status":0,
"msg":"success",
"data": "70001"
}










