thrift通信的单位是一个message,格式如下:
各字段解释:
1)版本号:用15个bit表示,因为前导1的存在,这16位总是一个负数。
每次预先读取msg的前32位,使用VERSION_MASK 0xffff0000来获取前16位。
目前默认的版本号是0x80010000。
2)待使用:待使用的一个字节。
3)消息类型:用后3个bit表示消息类型,分别是:
消息类型 | 16进制值 | 处理方式 |
---|---|---|
CALL | 0x80010001 | 调用方法,并期望获得返回 |
REPLY | 0x80010002 | 来自服务端的返回消息 |
EXCEPTION | 0x0x80010003 | 服务端处理请求时出现异常 |
ONEWAY | 0x80010004 | 单向请求,不需要返回 |
4)方法名的长度:用4个字节来表示。
5)方法名:调用的方法的名称,长度由方法名长度来表示,UTF-8的编码。
6)序列号:负责排序。