首先在看之前,回顾一下akka模型:
Flink通讯模型—Akka与Actor模型-CSDN博客
注:ActorRef就是actor的引用,封装好了actor
下面是jm和tm在通讯上的概念图:
RpcGateway
- 用于定义RPC协议,是客户端和服务端沟通的桥梁。
- 服务端实现了RPC协议,即实现了接口中定义的方法,做具体的业务逻辑处理。
- 客户端实现了RPC协议,客户端是Proxy生成的代理对象,将对RpcGateway接口方法的调用转为Akka的消息发送。
- 关注其5个子接口:DispatcherGateway、ResourceManagerGateway、JobMasterGateway、MetricQueryServiceGateway、TaskExecutorGateway。
RpcEndpoint
- RPC服务端的抽象,实现了该接口即为Rpc服务端,是Akka中Actor的封装。
- Actor收到ActorRef发送的消息(消息被封装为RpcInvocation对象),会通过RpcInvocation对象中的方法、参数等信息以反射的方式调用RpcGateway接口对应的方法。
- 关注其5个实现类:Dispatcher、ResourceManager、JobMaster、Metr