我有一个 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 并向第二个节点的参与者发送一条消息,以便它更新其哈希(<-这是我要跟踪的部分)
第二个节点更新它的哈希(所以这意味着消息已被成功接收)。我怎么无法使用 TCP 转储看到该消息?(我看到端口 2552 上没有收到任何内容,并且我还做了一个 tcpdump 监听所有网络接口和所有端口,从我发送 http put 消息的那一刻到第二个节点中更新哈希的那一刻,没有tcp消息似乎包含主节点中的actor发送给第二个节点上的actor的akka消息)
谢谢