简述RPC的协议和序列化

目录

目标

protocol协议

what

规则

协议举例

 响应报文

请求报文

序列化

 what

关注点

最终类型

 序列化器

what

各种序列化器


目标

实现一个RPC中间件,需要选择网络框架,制定协议、序列化方式等,本文简述协议和序列化方式。

protocol协议

what

协议,确定规则,为协议编解码行为提供规范。

规则

  •     确定最小单元:bit或byte
  •     确定header应占用几个单元
  •     确定header中每个单元的含义
  •     报文各个字节的含义

协议举例

 响应报文

  •     协议种类
  •     版本
  •     表示响应的标示
  •     响应状态
  •     请求ID
  •     body的序列化方式标示
  •     body的长度
  •     body数据

请求报文

  •     协议种类
  •     版本
  •     表示请求的标示
  •     body序列化方式标示
  •     请求ID
  •     超时时间
  •     服务名称长度
  •     方法名称长度
  •     各个参数类型的长度
  •     各个参数数据的长度
  •     请求配置的长度
  •     服务名
  •     方法名
  •     各个参数类型
  •     各个参数数据
  •     配置数据

 

序列化

 what

把对象转为二进制序列

关注点

对象包含很多信息,例如类名/域名/域类型/方法信息。需要选择表示对象的最小信息集合。
序列化Bean时只需要标明对象类型名,且只关注对象持有的数据即可,如getter方法和返回数据。

最终类型

所有对象最终均是由基本类型/String/Date/Null/Byte[]构成。
所以对象的序列化最终就是基本类型/String/Date/Null/Byte[]的序列化。

 序列化器

what

将对象分类,每个分类对应一个序列化策略,以规定序列化规则。序列化策略即为序列化器。

各种序列化器

基本类型序列化器
    

对象类型序列化器

javaSerializer作为序列化入口,其保持序列化器集合,具体序列化接口中会选择合适的序列化器进行工作。

 

 

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值