【问题标题】:How to create 64 bit number ID in a distributed environment如何在分布式环境中创建 64 位数字 ID
【发布时间】:2019-06-27 20:20:56
【问题描述】:

如何在分布式环境中创建唯一编号的Javalong类型? 我的要求是:

1-64位数字

2-安全重启

3- 分布式环境

3- 没有碰撞

请注意,没有冲突的分布式环境会使用计数器或当前时间排除 simple approaches

【问题讨论】:

标签: java distributed


【解决方案1】:

如果你真的有一个分布式系统,即多个可执行实例正在创建 ID,并且 ID 需要在所有实例中是唯一的,你可能需要使用类似 redis 的东西。 Redis 支持自动递增操作,可以帮助您。

【讨论】:

  • 没有redis如何处理?
  • 您将需要一些集中的东西,如果您走其他任何路径,您将构建更复杂的功能。另一种选择是对 ID 空间进行分区并将其分配给所有实例,但这不适用于水平扩展。
【解决方案2】:

Use AtomicLong and a Timer

然后使用像 Hashset 这样的集合来处理它的值,以免发生冲突。

【讨论】:

    猜你喜欢
    • 2019-04-28
    • 1970-01-01
    • 1970-01-01
    • 2017-01-13
    • 2010-09-07
    • 1970-01-01
    • 2014-08-06
    • 2023-04-04
    • 1970-01-01
    相关资源
    最近更新 更多