在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
原文连接: 开源项目|Go 开发的一款分布式唯一 ID 生成系统 今天跟大家介绍一个开源项目:id-maker,主要功能是用来在分布式环境下生成唯一 ID。上周停更了一周,也是用来开发和测试这个项目的相关代码。 美团有一个开源项目叫 Leaf,使用 Java 开发。本项目就是在此思路的基础上,使用 Go 开发实现的。 项目整体代码量并不多,不管是想要在实际生产环境中使用,还是想找个项目练手,我觉得都是一个不错的选择。 项目背景在大部分系统中,全局唯一 ID 都是一个强需求。比如快递,外卖,电影等,都需要生成唯一 ID 来保证单号唯一。 那业务系统对 ID 号的要求有哪些呢?
在此背景下,有一个高可用的唯一 ID 生成系统就很重要了。 项目使用生成 ID 分两种方式:
使用上提供两种方式来调用接口:
HTTP 方式1、健康检查:
2、获取 ID: 获取 tag 是 test 的 ID:
3、获取雪花 ID:
gRPC 方式1、获取 ID:
2、获取雪花 ID:
本地开发
项目架构项目使用 go-clean-template 架构模板开发,目录结构如下: 下面对各目录做一个简要说明:
借用官方的两张图: 整体的层次关系是这样的,最里面是 models,定义我们的表结构,然后中间是业务逻辑层,业务逻辑层会提供接口,给最外层的 API 来调用,最外层就是一些工具和调用入口。 这样做的最大好处就是解耦,不管最外层如何变化,只要在业务逻辑层实现对应接口即可,核心代码可能根本不需要改变。 所以,它们之间的调用关系看起来是这样的:
以上就是本项目的全部内容,如果大家感兴趣的话,欢迎给我留言交流,要是能给个 star 那就太好了。 项目地址: :id-maker 往期文章:
推荐阅读: |
请发表评论