美文网首页
RPC学习笔记-协议

RPC学习笔记-协议

作者: LegendGo | 来源:发表于2020-09-06 15:57 被阅读0次

RPC协议

RPC协议同HTTP协议一样,都是属于应用层的协议,可以通过学习HTTP的协议来理解RPC协议.

  • HTTP的协议:请求行,请求头部,请求数据

协议的作用

在网络通信中,只有二进制才可以传输,所以RPC请求在发送到网络中之前,需要把方法调用的请求参数转成二进制,转成二进制后写入本地socket,然后被网卡发送到网络设备中去。但是在传输的过程中,RPC 并不会将请求参数的所有二进制数据整体一下发送到对端的机器上,中间会拆成好几个数据包,也可能会合并其他请求的数据包。所以在RPC传输的过程中,为了能够准确获取数据,我们在请求的发送数据包里会加入一个指定的协议,方便我们从中获取指定的数据。

如何设计协议

相比HTTP,RPC更多的是负责应用之间的通信,所以性能要求比较高,但是HTTP协议的数据包大小相对请求数据本身要大很多,又加入了很多无用的东西,而且HTTP协议属于无状态协议,客户端无法对请求和响应进行关联,每次请求都需要重新建立连接,响应完成后再关闭链接,因此RPC会选择设计更加紧凑的私有协议。

如何设计一个RPC的私有协议

在协议头里除了放会议长度,序列化方式,还会放一些协议标示,消息ID,消息类型等参数,而协议体一般只放请求接口方法,请求业务参数值和一些扩展属性,这样可以实现一个完整的RPC协议:协议头是由一堆固定长度的参数组成,而协议体是根据请求接口和参数构造的,长度属于可变的。

可扩展协议

设计一种支持可以扩展的协议,其关键在于让协议头支持可扩展,扩展后的协议头长度就不固定了,所有整个协议需要设计成:固定部分,协议头内容,协议体内容。

相关文章

  • RPC学习笔记-协议

    RPC协议 RPC协议同HTTP协议一样,都是属于应用层的协议,可以通过学习HTTP的协议来理解RPC协议. HT...

  • http与rpc

    什么是RPC协议?RPC协议与HTTP协议的区别6,790次阅读什么是RPC协议? RPC是一种远程过程调用的协议...

  • #知识学习之Json-RPC

    知识学习之Json-RPC JSON-RPC技术 JSON-RPC是一个无状态且轻量级的远程过程调用(RPC)协议...

  • RPC远程过程调用概念及实现2018-04-16

    RPC远程过程调用概念及实现 RPC框架学习笔记 >>什么是RPC RPC 的全称是 Remote Procedu...

  • HTTP与RPC(Thrift)

    什么是RPC 从网络协议来说,Http协议与Rpc同属于应用层, 他们的底层都是tcp协议。 从概念上来说,RPC...

  • 跨语言RPC框架

    跨语言RPC框架 RPC框架 RPC(Remote Procedure Call):是一种计算机通信协议。该协议允...

  • Dubbo

    Dubbo(服务治理框架) RPC 各服务都要实现rpc协议,才能实现服务间的调用 rpc:远程过程调用协议,是一...

  • 网络协议

    学习《趣谈网络协议》 网络协议 应用层 DHCP HTTP HTTPS RTMP P2P DNS GTP RPC传...

  • RPC和HTTP的区别

    RPC调用和HTTP调用 1. 协议 RPC是通常基于TCP/IP协议 HTTP基于HTTP协议 2. 效率 RP...

  • 谈谈 RPC

    RPC(Remote Procedure Call),翻译过来就是远程过程调用 。RPC 协议假定某些传输协议的存...

网友评论

      本文标题:RPC学习笔记-协议

      本文链接:https://www.haomeiwen.com/subject/isqcektx.html