Akka Remoteを利用したServer, Clientの簡単なActor通信するサンプルで動作確認した
概要
akka remoteを使ったリモート間のActorプログラムに慣れるために、client -> server構成の単純なプログラムを作成して動作を確認した。
作成したプログラムは以下
動作環境
構成
- メッセージを待ち受けるserverと、メッセージを送信するclientの2プロジェクト構成
- serverとclientは別プロセスとする
動作シーケンス
- client
- serverのActorに対して一定時間間隔でメッセージを送信する
- 最後にserverを停止するメッセージを送信する
- server
- メッセージ待受するActorを起動する
- 受け付けたメッセージを標準出力に表示する
パケットキャプチャ
remote actorに対する通信を理解するためにパケットキャプチャを用いて通信の内容を確認する。
このサンプルプロジェクトはlocalhost環境で動かしている。WireSharkでは自マシン間での通信はキャプチャできない為、RawCapを利用した。
server起動
sbt project server run
client起動
serverとは別のsbtで以下を実行する
sbt project client run
キャプチャ結果確認
RawCapは標準でpcap形式のファイルを出力するので、キャプチャ内容を確認するときはWireSharkを利用することができる。
- 一度コネクションを張るとshutdownするまでずっとコネクションを維持し続ける
- デフォルトでは4秒?毎にheart beatが投げられている
- 小さいメッセージ(今回はString9文字程度)だとペイロードの大半がactor pathの情報が占めるように見える