0
点赞
收藏
分享

微信扫一扫

Go实现全局分布式主键系统

爱情锦囊 2022-03-24 阅读 32

分布式主键系统

该系统其实就是个练手的项目,大家不必太在意,项目非常简单,也很方便大家学习go语言。地址:https://github.com/liyouqing666/guid。代码在dev分支。如果大家对grpc基础环境有疑问请移步这里:go集成grpc

一,涉及技术

二,如何快速跑起来

1,配置相关

位置内容
/conf/db/ddl.sqlSQL脚本
/etc/*.yml配置文件

2,项目入口

位置内容
/guid.go项目启动入口
/server/server.go服务入口
/server/gin_server.gogin服务入口
/service/impl/db_serviceImpl.go数据库分布式主键实现
/service/impl/redis_serviceImpl.goredis分布式主键实现
/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"
}
举报

相关推荐

0 条评论