我正在尝试实现一些AtLeastOnceDelivery装饰器,以便为不同的演员提供可靠的消息传递。所以这样的装饰器试图处理相当密集的消息传递,并将与应用程序共享lyfecycle。
根据AtLeastOnceDelivery documentation,deliveryId是一个严格单调递增的序列号,没有间隙(长)。
问题是:当值超过最大值时会发生什么? akka-persistence是否正确处理了这种情况?
答案 0 :(得分:2)
快速查看AtLeastOnceDelivery source code告诉我,没有任何地方可以处理Long
溢出情况。
我认为没有处理的原因是因为溢出不太可能。 Scala Long
的最大值为9223372036854775807.要明确这一点,即使您每天处理10亿条消息,也需要25269512年才能达到最大值。