来自 akka 持久性的 AtLeastOnceDelivery 保证的 deliveryId owerflow

deliveryId owerflow for AtLeastOnceDelivery guaranty from akka persistence

我正在尝试实现一些 AtLeastOnceDelivery 装饰器,以便为不同的参与者提供可靠的消息传递。因此,此类装饰器会尝试处理相当密集的消息传递,并将与应用程序共享 lyfecycle。

根据 AtLeastOnceDelivery documentation deliveryId 是一个严格单调递增的序列号,没有间隙(长)。

问题是:当值溢出max long时会发生什么? akka-persistence 是否正确处理这种情况?

快速浏览 AtLeastOnceDelivery source code 告诉我没有任何适当的地方来处理 Long 溢出情况。

我认为没有适当处理的原因是溢出的可能性很小。 Scala Long 最大值为 9223372036854775807。换句话说,即使每天处理 10 亿条消息,也需要 25269512 年才能达到最大值。