taleid

module
v0.0.0-...-133fc75 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 9, 2019 License: MIT

README

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

Directories

Path Synopsis
cmd
idHttp/service
Package service 生成ID
Package service 生成ID
Package generator 发号包,目前实现顺序发号Segment Segment支持顺序发号。
Package generator 发号包,目前实现顺序发号Segment Segment支持顺序发号。
Package store 存储发号进度
Package store 存储发号进度

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL