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

时间:2017-07-17 09:46:01

标签: akka akka-persistence

我正在尝试实现一些AtLeastOnceDelivery装饰器,以便为不同的演员提供可靠的消息传递。所以这样的装饰器试图处理相当密集的消息传递,并将与应用程序共享lyfecycle。

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

问题是:当值超过最大值时会发生什么? akka-persistence是否正确处理了这种情况?

1 个答案:

答案 0 :(得分:2)

快速查看AtLeastOnceDelivery source code告诉我,没有任何地方可以处理Long溢出情况。

我认为没有处理的原因是因为溢出不太可能。 Scala Long的最大值为9223372036854775807.要明确这一点,即使您每天处理10亿条消息,也需要25269512年才能达到最大值。