如何使用 Oracle Coherence 在分布式系统上生成唯一 ID?

How to generate unique id on a distributed system using Oracle Coherence?

我有一个分布式 java 应用程序,它使用 Oracle Coherence 实现缓存功能。我如何使用它为分布式系统生成唯一的 UUID?我很确定这可以通过利用 Coherence 的缓存功能实现序列生成器来完成 here. Cassandra has TimeBaseUUID,我正在尝试寻找 Coherence 上是否有类似的东西。

对于 Coherence 产品中的序列生成,Oracle 不提供任何正式支持。看起来你想要 UUID 生成(不是序列),它由 Coherence Incubator project in the commons module, specifically the UUIDBasedIdentifier.java class. There is also the ClusteredSequenceGeneraror.java 支持,它也可以生成集群范围的序列。请看一下这个项目,看看它是否满足您的需求。

孵化器项目由 Oracle 开发人员编写,是 Oracle 为支持像您这样的用例所做的努力。通过检查单元测试进行尽职调查,确保它符合您的标准。

一致性 UUID class has the below constructor which is very much similar to functionality offered by Cassandra's TimeBasedUUID

public UUID(long lDatetime,
            java.net.InetAddress addr,
            int nPort,
            int nCount)

Coherence Incubator 的 UUIDBasedIdentifier 在内部使用 UUID 的默认构造函数。