私は新しくリリースされた Akka.Net 1.0 (リリースおめでとうございます!) で遊んでいるので、私にとってはまったく新しいものですが、JVM Akka の経験がある人なら誰でも参加できると確信しています。質問。
大規模なシステム/アプリケーションの一部であるいくつか (例として 2 つ) の個別のサービスを考えてみましょう。これらのサービスは通常、独自の処理を行いますが、サービス間の呼び出しが必要になる場合があります。Service 2
スタンドアロンにすることができ、GetStuff
アクションがあるとしましょう。最初にアクションの結果を取得する必要がService 1
あるアクションがあります。DoSomething
GetStuff
両方のサービスを別々に異なるマシンに展開できる場合、そのような状況を処理するための推奨される方法は何ですか?
私が言ったように、私は Akka についてあまり知りませんが、例、ドキュメント、およびソースを掘り下げると、2 つのオプションが見つかりました。
- リモーティング。リモートホスト
Remoting
から取得するために使用する独自のサービスでアクターシステムを分離します。ActorSelection
これはRemoting docs exampleとほぼ同じですが、2 つのアクター システムが「クライアント」に等しいという点だけです。 - クラスタリング。私はそれについて頭を悩ませようとしていますが、現在理解できることは、クラスターシステムをセットアップするだけの別のクラスターサービスをセットアップし、シードノードが適切に動作するように単純なリスナーアクターを作成することです。初期化(?)。次に、独自のサービスで作成されたすべての個別のアクター システムが、異なるロールの下で前述のクラスター システムに参加します。
私が気付いていない別の解決策があるかもしれません...?
個人的には、クラスタリング ソリューションは一見、把握してセットアップするのが難しいように見えますが、今は見えない大きな利点がいくつかあるのかもしれません。
繰り返しますが、このような状況に対処するための推奨される方法は何ですか?また、何に注意する必要がありますか?