dolphinscheduler服务RPC框架源码解析(三)自定义网络传输协议及协议编解码实现

1.概述

RPC作为分布式系统底层通信的基础设施框架,主要进行远程过程调用,设计这种服务端、客户端程序,肯定会涉及到网络传输。通常情况中,只要是涉及到数据在网络过程中传输,都是要通过某种协议进行的。例如HTTP/TPC/UDP协议等。

数据由发送方发送到接收方之前,会通过某种协议将其编码成二进制流,通过网络将二进制流传输到接收方后,会根据协议将其解码成对应的数据。当接收方处理完数据返回结果前,也需要先通过协议将返回的数据编码成二进制流,通过网络传输到发送方后,根据协议将二进制数据解码成对应的数据。大致实现流程如下:
在这里插入图片描述
dolphinscheduler中RPC框架的实现中也进行了自定义的网络传输协议的设计, 下面我们一起通过源码看看这块的内容。

2.自定义传输协议设计

如果让你设计一个网络传输协议, 你想想你会怎么设计?一般情况下,网络传输协议的设计基本都会包含消息头和消息体这两部分
在这里插入图片描述