問題タブ [akka-supervision]

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.

0 投票する
2 に答える
961 参照

java - Akka アクター/スーパーバイザーの階層を決定する方法は?

私はAkka(Java lib、v2.3.9)を初めて使用しています。スーパーバイザー階層のベスト プラクティスに従おうとしていますが、これが初めての Akka アプリであるため、どこかで精神的な障壁にぶつかっています。

私の初めての Akka アプリ (実際には、複数のアプリ間での再利用を目的としたライブラリ) では、外界からの入力はProcess、アクターに渡されるメッセージとして現れます。Process私のアプリを使用する開発者は、最終的にどのアクターがインスタンスを送信し、どのアクターが送信しないかを構成するテキストベースの構成ファイルを提供します。つまり、これらが私のアクター クラスであるとします。

構成ファイルでわかるように、メッセージを受信するためにStormTrooperとのみEmperorが選択されました。Processこれにより、最終的にゼロ (0)DarthVaderアクターが作成されます。また、これにより、次のように取り込まれSet<ActorRef>たアプリケーションで利用できるようになることも私の意図です。StormTrooperEmperor

UntypedActorしたがって、(願わくば) ご覧のとおり、メッセージを処理するこれらすべてのアクター (実際には何十ものimpl) があります (次に、何らかのソースからProcess取得します)。InputこれらのProcessメッセージを処理するためにどのアクターが生きている/オンラインであるかについては、完全に構成主導型です。最後に、アプリInputが.ProcessProcess

これが与えられたバックストーリー/セットアップであるため、「アクター/スーパーバイザーの階層」がどうあるべきかを特定できません。私のユースケースでは、すべてのアクターは真に平等であり、アクター間に監視構造はないようです。そのタイプのアクターが存在するように構成されている場合、StormTrooper単にメッセージを受け取ります。Process他のアクター サブクラスについても同様です。

ここで何かが完全に欠けていますか?すべてのアクターが等しく、階層が本質的に「フラット」/水平である場合、(フォールト トレランスの目的で) 監視階層を定義するにはどうすればよいですか?

0 投票する
3 に答える
917 参照

scala - Akka で RouterPool のすべての子の ActorRefs を取得する方法

次のようなアクターの RouterPool を作成します。

今度は、このルーターによって管理されている 5 つの子の ActorRef オブジェクトにアクセスしたいと思います。すべての子に対してそれを取得するためのメソッド呼び出しはありますか? または、それらを明示的に宣言してからルーターに渡す必要がありますか?

0 投票する
1 に答える
526 参照

akka - ActorRef をコンストラクター引数として渡す

私は Akka を初めて使用し、多くのリモート ノードを持つクラスター システムを構築しています。リモート ノードはワーカーと呼ばれます。ワーカーは、リモート ルーターのチェーンを作成します。

ルーターを作成する親 (ワーカー) には、ルーターのすべてのルートからメッセージを取得する統計ウォッチャーがあります。

qn is : Is は、ルーターのコンストラクター引数としてルーターを作成するときに statswatcher actorRef を渡すか、単に statswatcher のアクター パスをコンストラクター引数として渡し、メッセージを伝えるためにルーターでユーザー アクターの選択を渡すことをお勧めします。

**************** アップデート ********

akka メーリング グループからの返信によると、アクター ref をコンストラクター引数として渡すことは悪い習慣ではありません。アクター選択は、リモート アクター ルックアップに役立ちます。

0 投票する
1 に答える
208 参照

akka - さまざまなタイプのアクターに対する Akka スーパーバイザー戦略

私は Akka を使用しており、ユーザー ガーディアン アクターの独自の監督戦略を定義したいと考えています。TaskActor と MessageActor という 2 種類のアクターを定義しました。それらはトップレベルのアクターとしてインスタンス化されます。ユーザー ガーディアンに次の監視戦略を適用してほしいと思います: TaskActor を停止し、MessageActor が例外をスローしたときに再開します (スローされる例外の特定のタイプは気にしません)。どうすればいいですか?

0 投票する
2 に答える
1153 参照

scala - アクターの再起動後にスーパーバイザーからアクターにメッセージを送信する方法は?

要件?
- 永久に実行する長時間実行プロセス (デーモン) が必要です
- 例外が発生した場合は再起動する必要がありますが、再度 2 回失敗した場合は再起動する必要はありません

私が直面している問題?
- アクターは再起動されますが、メッセージは再送信されません

私は何を持っていますか?

メインクラス

スーパーバイザー

俳優

実働

ログ

更新
に委任しないとFuture、再起動してもすべてが期待どおりに機能しますが、に委任するとFutureFutureアクターの場合に実行されませんrestart。こちらをご覧ください

0 投票する
1 に答える
88 参照

akka - フォールバックする Akka と Supervisor の戦略

私は Akka を初めて使用しますが、ディレクティブについての私の理解では、子が永久にサービスを停止していると見なされるべきときに内部で使用されますが、完全な停止を処理する方法があります。StopSupervisorStrategies

その理解が正しければ、私がやりたいことは、通常/プライマリの子が停止され、その時点からフォールバックとして使用された後に従事する必要がある、ある種の「バックアップ アクター」を持つことです。たとえば、Notifier電子メールを送信する子アクターを持つ親アクターがいるとします。Notifierが本当に停止した場合(たとえば、基盤となるメール サーバーがオフラインになった場合)、このアクターへのバックアップは別のアクター (たとえば、 ) である可能性があります。このアクターQueueClientは通知要求をメッセージ ブローカーに送信し、そこでメッセージはキューに入れられ、後で再生されます。時間。

SupervisorStrategy内部にフォールト トレランス/アクター バックアップが組み込まれているように定義するにはどうすればよいですか? コード例を見せてください。それが私が学ぶ唯一の方法です!

0 投票する
1 に答える
1014 参照

java - Akka で最上位のスーパーバイザーをエスカレートする方法は?

次のトップレベル (「最も親」) なアクターがあります。

ご覧のとおり、3 つの子を監視し、それら 3 つの子が「回復可能な」例外をスローすると、それらは停止され、バックアップに置き換えられます。ここまでは順調ですね。

私が今直面している問題は、バックアップ アクターがスロー可能なものをスローした場合、このMasterアクター (そして実際には、私のアプリ全般) が入力の処理を続行できない状態にあると見なし、エスカレートすることです。保護者レベルの例外。

私は Akka を初めて使用するので、このコードをどこに配置すればよいか、どのように見えるべきかわかりません。繰り返しますが、次のようなロジックが必要です。

  • Masterバックアップ アクターがスロー可能なものをスローした場合、例外をの親にエスカレートします。これは、実際には Akka “<a href="http://doc.akka.io/docs/akka/snapshot/general/supervision.html " rel="nofollow">guardian" アクター/コンストラクト

これの最初の部分は、例外がバックアップからいつスローされるかを知る必要があるということです。この部分は処理できるので、戦略が次のようになったとしましょう。

しかし、ご覧のとおり、「アクター システムから」エスカレーションを実装するのにまだ苦労しています。アイデア?Scala は私には象形文字のように見えるので、Java コードの例が非常に好まれます。