V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
laoni
V2EX  ›  程序员

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

  •  
  •   laoni · Jun 22, 2016 · 4299 views
    This topic created in 3608 days ago, the information mentioned may be changed or developed.

    https://github.com/nixuehan/bear

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

    带 php sdk

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

    7 replies    2016-06-22 19:14:09 +08:00
    fancy20
        1
    fancy20  
       Jun 22, 2016   ❤️ 1
    https://github.com/XiaoMi/chronos
    小米出的实现高可用、高性能、提供全局唯一而且严格单调递增 timestamp 的服务。
    是不是功能类似?
    laoni
        2
    laoni  
    OP
       Jun 22, 2016
    @fancy20 恩 类似 根据毫秒级 保持递增
    youxiaer
        3
    youxiaer  
       Jun 22, 2016
    @fancy20 同一毫秒的 id ,大小如何区分?
    laoni
        4
    laoni  
    OP
       Jun 22, 2016
    @youxiaer 还有一个序列号 序列号是自增的
    youxiaer
        5
    youxiaer  
       Jun 22, 2016
    @laoni 那这个序列号就是单点,不能分布式?
    menc
        6
    menc  
       Jun 22, 2016
    看了下,小米的实现是对 timestamp + 18 位,使用 thrift rpc 来进行远程调用, id 由 thrift server 统一分发,保证了 id 唯一,每毫秒支持 2^18 个不同 id 。

    小米和你的区别就在于对硬件的依赖更少了,不需要提供机房机架等信息,以及把生成 id 放到 server 上, id 反正也要传给 server ,为什么交给 server 来做
    laoni
        7
    laoni  
    OP
       Jun 22, 2016
    @youxiaer 高可用 没问题 必须能呀
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2764 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 43ms · UTC 01:54 · PVG 09:54 · LAX 18:54 · JFK 21:54
    ♥ Do have faith in what you're doing.