在服务结构状态服务中创建一个独特的长

时间:2017-12-11 16:11:17

标签: azure azure-service-fabric

我有一个有状态的服务结构服务,需要调用第三方API。当它调用API时,它必须提供long类型的唯一ID。在有状态服务中有没有办法获得下一个可用的Long,而没有其他服务实例也会创建相同的ID?

1 个答案:

答案 0 :(得分:1)

  • 如果允许重复使用,则可以使用服务实例的哈希码,同一调用者不会同时使用第三方资源。

  • 您可以使用RandomNumberGenerator生成8个随机字节,并使用BitConverter将它们转换为long,以获得相当不错的随机long值。 无法保证两个随机数永远不会相同。 使用8个字节时,机会非常好。

  • 您可以创建一个Actor或Service来跟踪当前正在使用的长值(或者曾经使用过 - 如果需要的话)。让它按需分配新的长值。