問題タブ [akka-remote-actor]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
akka - Akka を使用したクロスサービス コール
私は新しくリリースされた Akka.Net 1.0 (リリースおめでとうございます!) で遊んでいるので、私にとってはまったく新しいものですが、JVM Akka の経験がある人なら誰でも参加できると確信しています。質問。
大規模なシステム/アプリケーションの一部であるいくつか (例として 2 つ) の個別のサービスを考えてみましょう。これらのサービスは通常、独自の処理を行いますが、サービス間の呼び出しが必要になる場合があります。Service 2
スタンドアロンにすることができ、GetStuff
アクションがあるとしましょう。最初にアクションの結果を取得する必要がService 1
あるアクションがあります。DoSomething
GetStuff
両方のサービスを別々に異なるマシンに展開できる場合、そのような状況を処理するための推奨される方法は何ですか?
私が言ったように、私は Akka についてあまり知りませんが、例、ドキュメント、およびソースを掘り下げると、2 つのオプションが見つかりました。
- リモーティング。リモートホスト
Remoting
から取得するために使用する独自のサービスでアクターシステムを分離します。ActorSelection
これはRemoting docs exampleとほぼ同じですが、2 つのアクター システムが「クライアント」に等しいという点だけです。 - クラスタリング。私はそれについて頭を悩ませようとしていますが、現在理解できることは、クラスターシステムをセットアップするだけの別のクラスターサービスをセットアップし、シードノードが適切に動作するように単純なリスナーアクターを作成することです。初期化(?)。次に、独自のサービスで作成されたすべての個別のアクター システムが、異なるロールの下で前述のクラスター システムに参加します。
私が気付いていない別の解決策があるかもしれません...?
個人的には、クラスタリング ソリューションは一見、把握してセットアップするのが難しいように見えますが、今は見えない大きな利点がいくつかあるのかもしれません。
繰り返しますが、このような状況に対処するための推奨される方法は何ですか?また、何に注意する必要がありますか?
akka - ActorRef をコンストラクター引数として渡す
私は Akka を初めて使用し、多くのリモート ノードを持つクラスター システムを構築しています。リモート ノードはワーカーと呼ばれます。ワーカーは、リモート ルーターのチェーンを作成します。
ルーターを作成する親 (ワーカー) には、ルーターのすべてのルートからメッセージを取得する統計ウォッチャーがあります。
qn is : Is は、ルーターのコンストラクター引数としてルーターを作成するときに statswatcher actorRef を渡すか、単に statswatcher のアクター パスをコンストラクター引数として渡し、メッセージを伝えるためにルーターでユーザー アクターの選択を渡すことをお勧めします。
**************** アップデート ********
akka メーリング グループからの返信によると、アクター ref をコンストラクター引数として渡すことは悪い習慣ではありません。アクター選択は、リモート アクター ルックアップに役立ちます。
scala - リモート akka ActorSystem のログ ストリームをリッスンする
リモート akka ActorSystemのログ ストリームをサブスクライブしようとしています。基本的には、リモート アクターの実行中のログを表示するコンソールを作成します。
これを行う唯一の方法は次のとおりです。ロギング ActorSystem 内で Actor を作成し、その Actor を ActorSystem.eventStream にサブスクライブさせてから、コンソールの ActorSystem 内から actorSelectionを使用してその Actor にサブスクライブします。
しかし、ログ パイプラインは次のようになるため、これは非常に「間接的」に見えます。
イベント ストリームをサブスクライブする簡単な方法はありますか?
scala - ローカル アクターで実行されている akka リモート アクター
私はhttp://www.typesafe.com/activator/template/akka-sample-remote-scalaakka-remote
を学び、やり直そうとしています。
プロジェクトを 2 つの別個の JVM で実行しようとすると、
と
Processing System
ポートで実行するように依頼しました2552
そして、他のシステム ( WatchingSystem
) に、ポートで実行するが、ポートで2554
開始するように指示しましたprocessingActor
2552
common
適切なプロバイダを使用することについて です
質問/懸念事項
- ログから、 が on ではなく onで
processingActor
実行されていることがわかります。何が問題なのですか?WatchingActorSystem
ProcessingActorSystem
- 2 つの ActorSystem が相互に接続していることを確認するにはどうすればよいですか? ログが記録されていません。ただし、例では、ログが発生することを共有しました。私は何が欠けていますか?
コード全体がGithubに投稿され、同様に実行されます
configuration - Akka リモート構成の名前のないアクター
私は初心者の Akka 開発者で、リモート処理を始めたばかりです。私はいつもこのタイプの構成を見ています:
アクターには「mainRepository」などの名前が付けられますが、名前のないリモート アクターを作成したい場合はどうすればよいでしょうか? 構成で何を指定する必要がありますか? または、新しいアクターをリクエストするときに ActorSystem で name パラメータを設定しないだけで、それを達成できますか?
また、「*」文字は何を意味しますか? または、リモート構成の詳細はどこで確認できますか? (akka.ioは別として)