《Akka与Actor模型:远程通信、路径、监督与测试全解析》
1. Akka远程通信
在Akka中,我们要实现“送男孩去杂货店”这一功能,也就是实现 sendBoy
函数。这里的男孩不属于面包店,经理需要将男孩送到由另一个Actor系统表示的杂货店。我们将借助Akka的位置透明性和远程功能来完成这一任务。
1.1 配置依赖与网络设置
首先,要在 build.sbt
中添加远程依赖:
libraryDependencies += "com.typesafe.akka" %% "akka-remote" % akkaVersion
然后,在 application.conf
中替换本地Actor提供者为远程提供者,并配置网络设置:
akka {
actor.provider = remote
remote {
enabled-transports = ["akka.remote.netty.tcp"]
netty.tcp {
hostname = "127.0.0.1"
port = 2552
}
}
}
对于代表杂货店的第二个Actor系统,使用相同配置但不同端口,通过包含 application.conf
并重新定义TCP端口来实现: