面试题:在分布式系统,你能想出来几种生成唯一ID的方案?(18)

  • ID按照时间在单机上是递增的 。

  • 缺点:

    • 在单机上是递增的 , 但是由于涉及到分布式环境 , 每台机器上的时钟不可能完全同步 , 也许有时候也会出现不是全局递增的情况 。

    6. 利用zookeeper生成唯一ID

    zookeeper主要通过其znode数据版本来生成序列号 , 可以生成32位和64位的数据版本号 , 客户端可以使用这个版本号来作为唯一的序列号 。

    很少会使用zookeeper来生成唯一ID 。 主要是由于需要依赖zookeeper , 并且是多步调用API , 如果在竞争较大的情况下 , 需要考虑使用分布式锁 。 因此 , 性能在高并发的分布式环境下 , 也不甚理想 。

    推荐阅读