image.png

    • Length:每个 protobuf 类型的数据都包含一个 length 字段,这是因为在 HDFS 写入操作时,使用了writeDelimitedTo() 方法。这个方法会先写入数据的 length,然后再写入数据
    • RpcRequestHeaderProto:RPC 调用头域,保存了callId、clientId、rpcKind等重要信息。服务器发回的响应消息中会带回clientId、 callId等信息,用于提取 call 等
    • RpcRequest:要特别注意,这里的 RpcRequest 是在 ProtobufRpcEngine.Invoker.invoke() 方法中构造的RpcRequestWrapper 类。 其中包括两个部分:
      • requestHeader:请求元信息,在什么接口上调用什么方法。例如在 ClientProtocol 接口上调用了rename() 方法
      • requestParam:请求参数,使用 protobuf 包装的,例如 rename() 请求的 RenameRequestProto 参数