問題タブ [akka.net-cluster]

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 投票する
1 に答える
222 参照

akka.net - 永続性が本当に必要ない場合に Akka.NET クラスターをセットアップするにはどうすればよいですか?

メモリ内の状態を追跡するかなり単純な Akka.NET システムがありますが、派生データのみが含まれています。したがって、任意のアクターは起動時にバックエンド データベースから最新の状態をロードし、メッセージの受信を開始してそこから状態を維持できます。そのため、アクターを失敗させ、いつでもプロセスを再開させることができます。それは自分自身を再構築します。しかし... 複数のノードで実行したい (主にメモリ要件のため) 必要に応じてノードの数を増減したいと考えています。また、ダウンタイムなしで新しいバージョンをリリースするため。これを達成するためのクラスタリングの最も軽量な (永続性の観点から) セットアップは何でしょうか? 持続性なしでクラスタリングを実行できますか?

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

akka.net - 単一の ActorSystem で Akka.Net Cluster ユーティリティを使用する

ネットワーク トラフィックを分析するために、複数のノードのネットワークのシミュレーションを作成しようとしています。ノード自体は Akka.Net を使用して実装され、Akka.Net クラスター機能の一部を使用できるはずです。ただし、シミュレーション自体は単一のマシンで実行することを目的としており、これらのノードが数千個含まれる可能性があります。

ノードの数が多いため、ノードごとに 1 つの ActorSystem を作成することは避けたいと思います。単一のアクター システム内で、クラスター モジュールとその機能 (ロール、分散ブロードキャスト、メンバー アップダウン イベントなど) を引き続き使用することは可能ですか?

それらを偽のリモート デプロイし、すべてのトラフィックを同じアクター システムに単純にルーティングする偽のトランスポートを作成することは可能でしょうか?

0 投票する
0 に答える
485 参照

akka.net - クラスター内の異なるノードでアクターを呼び出す方法は?

これは、ドキュメント ( https://getakka.net/articles/clustering/cluster-routing.html ) と私が読んださまざまなチュートリアルとコード サンプルによると、ルーターが機能する場所のようです。ただし、省略されているように見えるのはNodeB、 にあるアクターを呼び出す方法NodeAです。マイクロサービス システムでは、作業を行う「サービス/アクター」は完全に別のノードに配置される可能性があります。

そのため、クラスター内の各ノードにルーターを配置する必要があるようです。私はを使用することに興味がありbroadcast-poolますが、プールベースのルーターでは、ドキュメントに従って、ルートに展開します:

クラスター化されたプール ルーターは、ルートをターゲット ノードにリモートでデプロイするという点でグループ ルーターとは異なりますが、リモート マシンに存在する場合と存在しない場合がある事前定義されたアクター パスにメッセージをルーティングします。

そのため、プール ベースのルーターを複製すると、ノード間でデプロイも複製されるように見えます。

つまり、この展開の重複を避けるために、プールベースのルーターを 1 つだけ使用する必要があることを意味しているように見えますか? 私はmax-nr-of-instances-per-nodeそれを制限すると思いますか?

私の場合、役割を使用して、利用可能なものを次の場所に割り当てたいと考えています。

さらに、アクターが実行されていてNodeB、別のノード (マイクロサービス) にある別のアクターを呼び出したい場合、ルーターが定義されていない場合、ルーターのハンドルを取得するためNodeBに使用しますか? ActorSelectionそれを行うには、ルーターが定義されている場所へのフルパスが必要だと思います。akka.tcp://...

私の他の代替手段はNodeB、特定のノードがどこにあるかを知るように構成することだと思います

NodeBシード ノードに接続する場所を既に知っている必要があると思います。その場合、フル パスを取得し、シードでルーターを定義し、アクター選択を使用してそれらのルーターのハンドルを取得できます。これらのパスをハードコーディングする必要があります。アプローチはあまり望ましくないと思います。

私は完全に間違ったことをしている可能性もあり、おそらくこのアプローチの方が良いでしょう:Distributed Publish Subscribe in Cluster

https://getakka.net/articles/clustering/distributed-publish-subscribe.html

それは具体的に次のように述べているため:

アクターが実行されているノードを知らずにアクターにメッセージを送信するにはどうすればよいですか?

これは、空虚に向かって叫び、最善を期待するようなものです。特に、応答が必要な場合、たとえば、追加データを取得して送信者に返すアクターを呼び出す場合などです。