fescar源码分析-RPC消息封装

2019-02-15  本文已影响32人  do_young

前言

在之前的两篇文章中
fescar源码分析-AbstractRpcRemotingClient补充
fescar源码分析-AbstractRpcRemotingServer
可以了解到,fescar在基于Netty实现RPC客户端及服务端时,都会在pipline中配置一个MessageCodecHandler
MessageCodecHandler继承于ByteToMessageCodec<RpcMessage>类,实现了对出入站的数据进行编解码操作的进一步封装:

其中RpcMessage对象是fescar定义的RPC调用的统一数据结构。

image.png
*id 是一个消息的序列号。
public interface MessageCodec {
    short getTypeCode();//消息类型
    byte[] encode(); //将POJO对象转换为字节数组
    boolean decode(ByteBuf in);//将ByteBuf中的字节数组转换为POJO对象
}

通过下图可以看到fescar封装有哪些消息类型数据:


image.png

其中消息类型的关键字可以与如下示意图中的关键字相对应。

image.png
上一篇 下一篇

猜你喜欢

热点阅读