我有一个有状态的服务结构服务,需要调用第三方 API。当它调用 API 时,它必须提供一个 long 类型的唯一 ID。有状态服务中是否有任何方法可以获取下一个可用的 Long,而不需要该服务的其他实例也创建相同的 ID?
最佳答案
如果允许重复使用并且第三方资源不被同一调用者同时使用,您可以使用服务实例的哈希码。
您可以使用RandomNumberGenerator生成 8 个随机字节,并使用 BitConverter 将它们转换为 long得到一个相当好的随机长值。 无法保证两个随机数永远不会相同。 不过,使用 8 个字节的可能性相当大。
您可以创建一个 Actor 或服务来跟踪当前使用的长值(或曾经使用过的值 - 如果需要)。让它按需分配新鲜的长值。
关于azure - 在服务结构中有状态服务中创建唯一的长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47756896/