Java 如何在集群中生成唯一ID

Java 如何在集群中生成唯一ID,java,Java,是否有任何群集API可以帮助跨多台服务器生成唯一ID?保留一些ID Server 1: 1000000.. 2999999 Server 2: 2000000.. 3999999 ... Server 3: 3000000.. 3999999 您可以添加一些智能,以便保留dinamic,但没有必要 我正在使用hazelcast,这是一个非常好的集群框架,它提供了唯一的id等等。使用。 尽管在实践中可能发生碰撞,但每个人都使用碰撞的几率非常低,包括关键的工业应用。 是一个关于冲突概率

是否有任何群集API可以帮助跨多台服务器生成唯一ID?

保留一些ID

Server 1:   1000000.. 2999999
Server 2:   2000000.. 3999999
...
Server 3:   3000000.. 3999999

您可以添加一些智能,以便保留dinamic,但没有必要

我正在使用hazelcast,这是一个非常好的集群框架,它提供了唯一的id等等。

使用。
尽管在实践中可能发生碰撞,但每个人都使用碰撞的几率非常低,包括关键的工业应用。

是一个关于冲突概率的讨论。

Hazelcast是一个超级简单、开源的java集群解决方案。 这是文档中的引用

Hazelcast IdGenerator创建集群范围的唯一ID。生成的ID是介于0和long.MAX_值之间的长类型基元值。Id生成几乎以AtomicLong.incrementAndGet()的速度进行。在集群的生命周期中,生成的ID是唯一的。如果重新启动整个集群,ID将再次从0开始

导入com.hazelcast.core.IdGenerator

导入com.hazelcast.core.hazelcast

IdGenerator IdGenerator=Hazelcast.getIdGenerator(“客户ID”)

long id=idGenerator.newId()


您错过了本网站的重点。这里的问题和答案是公开的,以减少反复询问相同问题的需要。是否有专门为在JBOS群集上生成唯一ID而提供的特定API?来自该wiki文档:“然而,这些概率仅在UUID使用足够的熵生成时成立。否则,重复的概率可能会明显更高,因为统计分散度可能更低”。因此,有些人喜欢划分空间,例如通过预先添加服务器实例标识符(如主机名pid)。