1

現在のアプリケーションは、大量のデータをインポートするユースケースに Akkaイベントストリームとそのパブリッシュ/サブスクライブを使用し、パブリッシュおよびイベントごとにデータを受信すると、サブスクライバーが存在します。この設計では、パブリッシャー/サブスクライバーのいずれかで問題が発生した場合、イベントが失われる危険性があります。

いくつかの理由から、ここで Akka の永続性を使用することが理にかなっているのかどうか疑問に思っています。

1) イベントの永続化 2) 監査履歴 3) スナップショットを使用したシナリオの再作成

システムには共有/グローバル状態 (ほとんどすべての Akka 永続化ブログ/例で一般的にユースケースとして説明されています) がないことに注意してください。

ここで Akka の永続性は理にかなっていますか?

4

1 に答える 1

0

あなたのシナリオを正しく理解していれば、1) にはいいえ、2) にははい、3) にはいいえと言います。

1) pub/sub メディエータ (実際には制御していない) の問題が原因でメッセージが失われた場合、永続的なアクターに到達することはなく、したがってイベント ストリームに保存されることも、再生されることもありません。

2) 記録されたメッセージは、監査中に参照できます。

3) アクターがステートレス プロセッサの場合、どのシナリオをスナップショットに再作成/保存しますか?

消費者から ack を受信するまで定期的にメッセージを再送信する確認/再試行メカニズムを使用して、1 を回避できることをお勧めします。

于 2014-11-07T10:19:01.880 に答える