2017-07-17 13 views
1

私はいくつかのAtLeastOnceDeliveryデコレータを実装して、さまざまなアクターに対して信頼できるメッセージングを実現しようとしています。したがって、このようなデコレータは、かなり集中的なメッセージングを処理しようとし、アプリケーションとlyfecycleを共有します。deliveryId owerflow for AtLeastOnceDelivery保証akka永続性

AtLeastOnceDelivery documentationによればdeliveryIdは隙間なく、厳密に単調に増加するシーケンス番号(長さ)です。

質問は次のとおりです。値がオーバーフローすると、何が起こるのですか? akka-persistenceはそのようなケースを正しく処理しますか?

+1

ソースコードを簡単に見てみると、状況を処理するための何もないことがわかります。ラップアラウンドは非常に起こりにくいからだと思います。 Scala Longの最大値は9223372036854775807です。これを視点に入れると、毎日10億件のメッセージを処理しても、最大限に達するまでに25269512年かかるでしょう。 –

+0

@JaakkoPallariこれは答えだと思います。再投稿してください、私はそれを受け入れるでしょう。ありがとう! – Silk0vsky

答えて

2

AtLeastOnceDelivery source codeを見てみると、オーバーフローが発生した場合には、Longの処理には何もないことがわかります。

処理がない理由は、オーバーフローが起こりにくいためです。 Scala Longの最大値は9223372036854775807です。これを視野に入れて、毎日10億メッセージを処理しても、最大値に達するまでには25269512年かかります。

関連する問題