web-dev-qa-db-ja.com

アクターモデルは、経過時間を扱うアプリケーションに適していますか?

タイマー付きの分散アプリケーションを作成する必要があります/ 2つのタイムスタンプの経過時間を定期的にチェックします。アクターモデルで次の動作を実現することは可能ですか?

  1. スポーンチャイルドアクター
  2. タイムスタンプをチェックするルーチンを開始するために子アクターにメッセージを送信します
  3. トリガーとして機能する可能性のあるメッセージを受信せずに、タイマーの期限が切れたときに何かを実行します

着信メッセージは、定期的にチェックされるタイムスタンプを変更できます。

失敗した場合、スーパーバイザーは、最後に受信した2つのタイムスタンプを使用して失敗したアクターを復元する必要があります。タイマーによってトリガーされたイベントの実行にわずかな遅延(アクターの再起動と状態の再適用)が許容されます。

ミッションクリティカルな目標は、2つのタイムスタンプの間の特定の経過時間に発生するはずのイベントを失わないようにし、単一障害点を排除することです。

アクターモデル(ErlangまたはAKKAで実装)はこの問題を解決するのに適していますか?そうでない場合、この場合により適している他のモデル/システムは何ですか?

3
Towen

これにアクターモデルを使用することに根本的な問題はなく、監視は安定した分散システムを作成するのに非常に役立ちます。そうは言っても、要件を満たすようにシステムを設計する必要があります。例えば。最大で1回配信するか、少なくとも1回配信するかを決定する必要があります。これをErlangで実装するには、 タイマーモジュール を見る必要があります。

1
Zalastax