問題タブ [akka-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.
scala - akkaにアトミック放送はありますか?
アトミック ブロードキャストが必要で、akka クラスターを使用したい。
akka にアトミック ブロードキャストがあるかどうかわからないので、確認したいだけです。
のようなものもありDistributedPubSubMediator.SendToAll
ますCluster Aware Routers
。トータルオーダーブロードキャストをサポートするものはありますか?
アトミック (トータル オーダー) ブロードキャストとは、アクター A がブロードキャスト bA を送信し、アクター B がブロードキャスト bB を送信することを意味します (並行して別のノードから)。最終的には、(すべてのアクターが bB の前にメッセージ bA を受信する) または (すべてのアクターが bA の前にメッセージ bB を受信する)。
java - 実行中の akka-cluster にシード ノードを追加する方法
AWS にデプロイされるフォールト トレラントな akka-cluster を作成しようとしています。3 つのシード ノード SN1、SN2、および SN3 と、1 つのシード ノードに接続された複数の Akka システムを備えた標準的なクラスターです。SN には、ダウンした場合に新しいインスタンスをスピンする ASG があります。
SN1 に障害が発生した場合、システムは他の SN (シード ノード) にフェールオーバーすることがわかっています。しかし、クラスターを停止することなく、新しい IP アドレスを持つようになった SN1 をシームレスに登録するにはどうすればよいでしょうか。
運が悪かったので次のことを試しました
- Cluster.joinseednodes は起動時にのみ機能します
- 各 SN の背後にある ELB が機能しませんでした。Akka が ELB に接続できませんでした
実行中の Akka クラスターにシードノードを追加する方法についてアイデアを持っている人はいますか?
ありがとう
java - Akka リモートルートのホスト名設定の問題
作成中のツールで akka リモート機能を使用しています。実際、コア システムとリモート システムを異なるポートを持つ同じホストで動作させることができました。akka docs で説明されているように、私のリモートサーバーはルーター上で実行されていることに注意してください。
現在、より良い実験を行うためにいくつかの Azure 仮想マシンを使用しようとしていますが、いくつかの問題が発生しています。
コア アプリケーションの構成は次のとおりです (セキュリティ上の理由から一部の名前を変更しました)。
リモートホストには次の構成があります。
この構成を使用すると、サーバーとリモート ホストは明らかに通信できますが、リモート ホストはいくつかのエラーをログに記録し始めます。
そしてしばらくすると、サーバーとリモートホストがエラーをログに記録し始め、フリーズします。
サーバーエラー:
リモートエラー (同様の行が数回):
問題はホスト名の構成にある可能性があることがわかり、ホスト名をサーバーとリモートホストに配置しようとしました。ただし、この場合、システムはロードさえしません。
何が間違っているのかわかりません。この問題に関する情報を検索しようとしましたが、見つかった情報はいずれも私の問題に関連しています。Azure構成でもポートを開きました。
サーバー ホストがリモート ホストと適切に通信できるようにするにはどうすればよいですか?
scala - sbt と Akka Microkernel でアプリケーションを実行する
プロジェクトで両方を使用できますか?
以前はオブジェクト拡張App
トレイトしかなかったのですが、使い始めてからクラス拡張トレイトMicrokernel
が必要になりました。Bootable
私はこのようなものを持っているとしましょう:
バックエンド クラスは次のようになります。
アプリを起動できませんsbt run
(static main メソッドが見つからないというエラーがあります) が、Microkernel で動作しsbt stage
ます。生成されたスクリプトを使用してアプリケーションを実行し、次に起動すると、正常に動作します。
私がこのようなものを使用しているとき:
でアプリを起動できますsbt "project backend" "run"
が、Microkernel が機能しなくなりました。
私はそれで何ができますか?Microkernel と sbt を使用してアプリケーションを起動するための個別のファイル、または個別のビルド構成を用意する必要がありますか?
Microkernel を使用した製品版のアプリケーションが必要であり、開発中に sbt を使用してアプリケーションを実行およびデバッグすることも必要です。
App と Bootable トレイトの両方を拡張する同じクラスまたはオブジェクトを使用するか、sbt.build を構成して Microkernel と を別々に構成しようとしましたが、sbt run
役に立ちませんでした。
akka - DistributedPubSub メディエーターがクラスターの到達不能メンバーのメッセージを隠しているか
クラスター化された環境では、DistributedPubSub メディエーターを介してメッセージを送信しています。そのため、メッセージが送信されたときに、クラスター内で到達できないマシンがいくつかあります。そして、これらのマシンは「自動ダウン」が切れる前に再び到達可能になり、その後、これらのマシンはメッセージを受け取ります。
これは、DistributedPubSub メディエーターがクラスターの到達不能メンバーのメッセージを隠しておき、再び到達可能になったときにそれらを配信するということですか?
tcp - tcpdump を介してクラスター内の akka アクター間で交換されたメッセージを確認するにはどうすればよいですか?
私は akka-cluster プロジェクトを持っています:
https://github.com/roclas/akka-distributed-hash
これは基本的に、クラスターのノード全体に分散された HashMap です。
異なる仮想マシンのアクター間で交換されるメッセージを (tcpdump や wireshark などを使用して) 読み取れるようにしたいと考えています。
どうすればできますか?
TCP ダンプを実行すると、「クラスタ メッセージ」のみが表示され、異なる仮想マシンの異なるアクターによって交換されたメッセージは表示されません。
ポート 2551 でノードを起動した場合: sbt "run 2551" (マスターになります)
およびポート 2552 上の別のノード: sbt "run 2552"
これを行うと実際に何が起こっていますか?:
curl -X PUT http://localhost:8551 --data "hello=333&world=456"
という事は承知しています:
マスター ノードの Web サービスが http put リクエストを受け取る
マスター ノードは HashMap を変更し、ハッシュを更新するように 2 番目のノードのアクターにメッセージを送信します (<-これはトレースしたい部分です)。
2 番目のノードがそのハッシュを更新します (つまり、メッセージが正常に受信されたことを意味します)。TCP ダンプを使用してそのメッセージを表示できなかったのはなぜですか? (ポート2552で何も受信されていないことがわかります。また、すべてのネットワークインターフェイスとすべてのポートをリッスンするtcpdumpを実行しました.http putメッセージを送信した瞬間から、2番目のノードでハッシュが更新される瞬間まで、マスター ノードのアクターが 2 番目のノードのアクターに送信する akka メッセージを含む tcp メッセージはないようです)
ありがとうございました