私は akka と Actor-Pattern を初めて使用するので、それが自分のニーズに合っているかどうかわかりません。
相互に影響を与えることができる akka と何百万ものエンティティ (ドメイン オブジェクト - 後のアクターと考えてください) を使用してシミュレーションを作成したいと考えています。したがって、多かれ少なかれ「あいまいな」結果を伴うシミュレーションとして考えると、エンティティの配列があり、これらのエンティティのそれぞれには速度がありますが、実際のエンティティの前にあるエンティティによって妨害されます。シミュレーションが開始されると、各エンティティは n フィールドを移動する必要があります。他のエンティティによって妨げられた場合は、それより少ないフィールドを移動する必要があります。複数の反復があり、最終的には新しい順序になります。これは、主要なエンティティの「スナップショット」が必要になるまで、いくつかのラウンドで繰り返されます (その後、次のラウンドが始まる前に削除される可能性があります)。
したがって、これをakkaで作成できるかどうかわかりません。理由は次のとおりです。
各アクターの位置を含むグローバル リストを作成することは可能ですか? 私の知る限り、これはアクターのカプセル化に違反しています。アクター自体にアクターの位置を入れることはできますが、このアクターの周りのアクターを確認/通知するにはどうすればよいですか? これに加えて、グローバル リストは同期の問題を引き起こし、パフォーマンスに影響を与えます。これは、望ましい動作とは正反対です (そして akka/アクター パターンを補完します)。
私は何を逃したのですか?別の設計アプローチを探す必要がありますか? 提案をありがとう。
更新: イベントバスと分類子を操作することもオプションではないようです。ドキュメントを参照する:
「したがって、サブスクリプションが非常に頻繁に変更されるユースケースには適していません」