2

私は 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"

という事は承知しています:

  1. マスター ノードの Web サービスが http put リクエストを受け取る

  2. マスター ノードは HashMap を変更し、ハッシュを更新するように 2 番目のノードのアクターにメッセージを送信します (<-これはトレースしたい部分です)。

  3. 2 番目のノードがそのハッシュを更新します (つまり、メッセージが正常に受信されたことを意味します)。TCP ダンプを使用してそのメッセージを表示できなかったのはなぜですか? (ポート2552で何も受信されていないことがわかります。また、すべてのネットワークインターフェイスとすべてのポートをリッスンするtcpdumpを実行しました.http putメッセージを送信した瞬間から、2番目のノードでハッシュが更新される瞬間まで、マスター ノードのアクターが 2 番目のノードのアクターに送信する akka メッセージを含む tcp メッセージはないようです)

ありがとうございました

4

1 に答える 1

0

ここで答えを見つけました:

https://groups.google.com/forum/#!searchin/akka-user/tcpdump/akka-user/pipFVxI6XsU/XlLh0e_8v_0J

私が探していたメッセージは、ポート 2552 および 2551 経由で送信されました。クラスタ ノードが相互に送信するすべてのメッセージの中からそれらを見つけることはできませんでしたが、セグメント サイズでフィルタリングすることで、必要なものを分離して確認することができました。彼らが内部的にどのように見えるか。

于 2015-02-14T13:57:31.600 に答える