7

私は akka と Actor-Pattern を初めて使用するので、それが自分のニーズに合っているかどうかわかりません。

相互に影響を与えることができる akka と何百万ものエンティティ (ドメイン オブジェクト - 後のアクターと考えてください) を使用してシミュレーションを作成したいと考えています。したがって、多かれ少なかれ「あいまいな」結果を伴うシミュレーションとして考えると、エンティティの配列があり、これらのエンティティのそれぞれには速度がありますが、実際のエンティティの前にあるエンティティによって妨害されます。シミュレーションが開始されると、各エンティティは n フィールドを移動する必要があります。他のエンティティによって妨げられた場合は、それより少ないフィールドを移動する必要があります。複数の反復があり、最終的には新しい順序になります。これは、主要なエンティティの「スナップショット」が必要になるまで、いくつかのラウンドで繰り返されます (その後、次のラウンドが始まる前に削除される可能性があります)。

したがって、これをakkaで作成できるかどうかわかりません。理由は次のとおりです。

各アクターの位置を含むグローバル リストを作成することは可能ですか? 私の知る限り、これはアクターのカプセル化に違反しています。アクター自体にアクターの位置を入れることはできますが、このアクターの周りのアクターを確認/通知するにはどうすればよいですか? これに加えて、グローバル リストは同期の問題を引き起こし、パフォーマンスに影響を与えます。これは、望ましい動作とは正反対です (そして akka/アクター パターンを補完します)。

私は何を逃したのですか?別の設計アプローチを探す必要がありますか? 提案をありがとう。

更新: イベントバスと分類子を操作することもオプションではないようです。ドキュメントを参照する

「したがって、サブスクリプションが非常に頻繁に変更されるユースケースには適していません」

4

1 に答える 1

2

アクター モデルは、シナリオに非常に適しています。アクターはメッセージを送信することで通信するため、各アクターは自分の位置を含むメッセージを隣人に送信できます。もちろん、各アクターはシステム内の他のすべてのアクターについて知ることはできません (とにかく効率的ではありません)

システムのスナップショットを取得する場合は、誰もが知っている、誰もが知っている中心的なアクターを用意するだけです。

俳優業を始めたばかりのようですね。もう少し読んでください - akka サイトは優れたリソースです - 必要に応じて戻ってきて、質問を絞り込んでください。

あなたの問題はn体シミュレーションのようなものに聞こえるので、それを調べることも役立つかもしれません.

于 2012-06-02T22:15:56.947 に答える