Prerequisites
Flink的RPC服务是基于Akka Remote实现的。一个简单的Akka Remoting ActorSystem的配置如下:
akka {
actor {
provider = remote
}
remote {
enabled-transports = ["akka.remote.netty.tcp"]
netty.tcp {
hostname = "127.0.0.1"
port = 2552
}
}
}
- 从这份配置文件可以看出,要建立一个ActorSystem,首先需要提供ActorSystem运行的机器的地址和端口。
- 参考Akka Remoting的文档,获取远程节点的Actor有两条途径。
- 第一条,通过actorSelection(path),在这儿需要知道远程节点的地址。获取到了ActorSelection就已经可以发送消息过去,也可以通过回信获取这个Actor的ActorRef。
- 第二条,通过配置,配置文件如下。通过这种方式,远程系统的daemon会被请求建立这个Actor,ActorRef可以直接通过system.actorOf(new Props(…)获取。
akka {
actor {
deployment {
/sampleActor {
remote = "akka.tcp://sampleActorSystem@127.0.0.1:2553"
}
}
}
}