java 中数据存储的自动递增实体 ID

Auto increment entity id for datastore in java

我知道数据存储不支持自动递增。
但是有些如何在 java 中创建唯一的 id 并且大于前一个 id。我知道 java 支持 UUID 这是唯一的但不是任何顺序。

为什么我需要自动递增是因为如果我以某种方式管理自动递增我可以按顺序获得结果。我不需要应用任何额外的过滤器来对数据存储结果进行排序。我在某处读取了数据存储 return ASC 默认顺序。如果我按顺序创建唯一的 id,我可以得到订单格式的结果。

我正在使用 objectify。

有什么建议吗?

这是分布式系统中的难题。排序需要多精确?如果它需要完全单调,那么您需要有一个发布 id 的单节点仲裁器。否则你将进入复杂而缓慢的分布式共识算法领域。

数据存储是一个大规模分布式系统,并不是为这个特定的用例设计的。如果您可以忍受每秒发出几个 id,您可以将当前值存储在一个实体中并在事务中更新它……但您不能超过该吞吐量。