Skip to content

taledog/taleid

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

taleid

Distributed ID Generate Service

ID生成器

为了保证多机房部署数据的一致性,需要一个全局ID生成器。

git clone github.com/taledog/taleid
cd taleid
go run cmd/idRedis/main.go

quick start

# 启动依赖存储
docker-compose up -d
# 运行http协议客户端
go run cmd/idHttp/main.go
# 查询id
curl 'http://127.0.0.1:7000/next' -d 'app=ugc&db=topic'
# 得到 {"id":1}

redis store

redis-server

zk store

使用docker-compose启动zk集群

zkCli
create /taleid/0 'master data center'
create /taleid 'rabbit id root'
cd tools/zoo && docker-compose up -d

使用命令行启动

# 修改 tool/zoo/Makefile 中的 ZKSERVER
vim tools/zoo/Makefile
make start

zk需要基础目录 /taleid/{机房ID}/{项目}

zkCli
create /taleid/0 'master data center'
create /taleid 'rabbit id root'

cd tools/zoo && docker-compose up -d

idHttp

  • /next 获取下一个id curl 'http://127.0.0.1:7000/next' -d 'app=ugc&db=topic'
  • /last 最后一个id curl 'http://127.0.0.1:7000/last?app=ugc&db=topic'
  • /max 最大的id curl 'http://127.0.0.1:7000/max?app=ugc&db=topic'
  • /remainder 剩余数量 curl 'http://127.0.0.1:7000/remainder?app=ugc&db=topic'

文档

功能

  • 基于redis发号DEMO
  • 实现数字生成器
  • 使用etcd 作为发号的存储
  • 完善预取逻辑
  • 提供预览版本做性能和可用性测试
  • 使用zk作为发号的存储
  • redis协议支持
  • 使用锁替换channel 减少内存占用
  • toml管理配置
  • 可用性测试,zk/etcd 短时间故障,比如超时或者选主
  • 将/taleid/[dc]/[db] 增加层级/taleid/[dc]/[db]/[table]

感谢

  • andrew-d_id
  • bear
  • dhetis
  • distributed-unique-id
  • flike_idgo
  • fyllo
  • get_uid
  • go-id-alloc
  • go-id-builder
  • go-katsubushi
  • go-unique
  • goSnowFlake
  • goimpulse
  • hikenote_idgenerator
  • id
  • idCreator
  • idGenerator
  • id_publisher
  • idalloc
  • idgen
  • idgo
  • idleaf
  • ids
  • igener
  • indigo
  • kala
  • libxx_id
  • mazhaoyong_idgenerator
  • numerical-id-generator
  • redis-id-generator
  • shopexguid
  • the-anna-project_id
  • tokenserver
  • upid
  • zkUid

Releases

No releases published

Packages

No packages published