写了要给分布式 id 生成服务 开源了~ 求指点

2016-06-22 11:07:54 +08:00
 laoni

https://github.com/nixuehan/bear

按照这个格式生成全局唯一 id : 毫秒 40bit + 机房 2bit + 机器 6bit + 业务 8bit + 序列号 7bit

带 php sdk

大家可以讨论下 id 生成 还有哪些方案?

3367 次点击
所在节点    程序员
7 条回复
fancy20
2016-06-22 11:53:06 +08:00
https://github.com/XiaoMi/chronos
小米出的实现高可用、高性能、提供全局唯一而且严格单调递增 timestamp 的服务。
是不是功能类似?
laoni
2016-06-22 12:33:43 +08:00
@fancy20 恩 类似 根据毫秒级 保持递增
youxiaer
2016-06-22 13:37:12 +08:00
@fancy20 同一毫秒的 id ,大小如何区分?
laoni
2016-06-22 14:18:10 +08:00
@youxiaer 还有一个序列号 序列号是自增的
youxiaer
2016-06-22 18:41:24 +08:00
@laoni 那这个序列号就是单点,不能分布式?
menc
2016-06-22 19:00:15 +08:00
看了下,小米的实现是对 timestamp + 18 位,使用 thrift rpc 来进行远程调用, id 由 thrift server 统一分发,保证了 id 唯一,每毫秒支持 2^18 个不同 id 。

小米和你的区别就在于对硬件的依赖更少了,不需要提供机房机架等信息,以及把生成 id 放到 server 上, id 反正也要传给 server ,为什么交给 server 来做
laoni
2016-06-22 19:14:09 +08:00
@youxiaer 高可用 没问题 必须能呀

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/287495

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX