# gleafd
基于Go的分布式ID生成服务, 具体设计来自于[leaf美团分布式ID生成服务](https://tech.meituan.com/2017/04/21/mt-leaf.html),参考美团点评开源的Java实现[Leaf](https://github.com/Meituan-Dianping/Leaf)。
## 基本API
> count 参数可以批量获取ID
1. Segment
```js
/api/v1/segments/:biztag?count=1
```
2. Snowflake
```js
/api/v1/snowflakes/:biztag?count=1
```
3. 健康检查
```js
/api/v1/health
```
## 测试步骤
### 启动MySQL服务
```shell
docker run -d \
--name gleafd_mysql \
-p 5506:3306 \
-e MYSQL_ROOT_PASSWORD=123456 \
-e MYSQL_DATABASE=gleafd \
-e MYSQL_USER=gleafd\
-e MYSQL_PASSWORD=123456 \
mysql:8.0.15
```
### 启动redis服务
```shell
docker run -d \
--name gleafd_redis \
-p 8379:6379 \
redis:5.0.3-alpine
```
### 启动gleafd
```shell
git clone https://github.com/derry6/gleafd
cd gleafd/cmd/gleafd/
go run main.go
```
### 测试
可以使用curl等http工具测试。压力测试使用ab或者wrk等测试。
```shell
// segment
curl http://localhost:9060/api/v1/segments/example?count=1
// snowflake
curl http://localhost:9060/api/v1/snowflakes/example?count=1
```
没有合适的资源?快使用搜索试试~ 我知道了~
基于Go的分布式ID生成服务 - 参考美团Leaf实现.zip
共32个文件
go:25个
yaml:2个
sum:1个
需积分: 5 0 下载量 68 浏览量
2024-05-23
17:09:55
上传
评论
收藏 29KB ZIP 举报
温馨提示
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。
资源推荐
资源详情
资源评论
收起资源包目录
基于Go的分布式ID生成服务 - 参考美团Leaf实现.zip (32个子文件)
content
go.mod 425B
go.sum 2KB
LICENSE 11KB
tests
get_segment_test.go 1008B
cmd
gleafd
main.go 3KB
gleafd.yaml 244B
pkg
log
logger.go 626B
version
version.go 71B
.gitignore 38B
server
options.go 1KB
snowflake
storage.go 3KB
metadata.go 195B
snowflake_test.go 2KB
service.go 3KB
snowflake.go 2KB
service_test.go 2KB
segment
service.go 5KB
repository.go 4KB
generator.go 3KB
segment.go 157B
service_test.go 3KB
http_handler.go 4KB
errors.go 101B
server.go 1KB
service.go 2KB
http_handler_test.go 3KB
midware.go 1KB
README.md 1KB
config
gleafd_test.yaml 236B
config_test.go 3KB
config.go 1KB
parser.go 3KB
共 32 条
- 1
资源评论
生瓜蛋子
- 粉丝: 3927
- 资源: 7441
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- ssm基于JAVA WEB技术大健康综合咨询问诊平台的设计与实现+jsp.zip
- ssm基于java web的网上书城系统的设计与实现+vue.zip
- 静态代码测试-QAC度量指标的详细解析与应用
- ssm基于HTML的出租车管理系统+jsp.zip
- ssm基于 Java Web 的校园驿站管理系统+jsp.zip
- ssm基于bs模式的医院在线挂号预约系统的设计与实现+jsp.zip
- ssm会议管理系统ssm.zip
- ssm化妆品配方及工艺管理系统的设计与实现+jsp.zip
- MATLABSimulink 扩展卡尔曼EKF 电池SOC估计 仿真模型 BMS系统仿真
- ssm会员管理系统+jsp.zip
- ssm固定资产管理系统+jsp.zip
- ssm海鲜自助餐厅系统+vue.zip
- css中cursor属性详解PDF
- ssm国学文化网站的设计与制作+jsp.zip
- ssm公司项目管理系统设计与实现+jsp.zip
- ssm工贸学生信息管理系统+jsp.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功