rpc和restful的区别


该教程适用
      
      
      

HTTP是不是RPC完全取决于client的具体形式。传统的RPC一般是基于二进制协议的,client发个二进制包过来(然后阻塞),server处理完回复一个包,client收到后醒来。



工具:

型号:

系统:

软件:



操作步骤/方法

方法教程

1 rpc和restful的区别如下: 2 HTTP是不是RPC完全取决于client的具体形式。传统的RPC一般是基于二进制协议的,client发个二进制包过来(然后阻塞),server处理完回复一个包,client收到后醒来。在二进制协议中一般可以在包中加个id来指明回复和请求的对应关系,这样我们就能在一个tcp连接上同时发起多个请求和回复。HTTP这种文本协议也可以加id,但由于一些原因(Content-Length可能缺失),即使加了id也做不到一个连接上同时传多个HTTP消息,所以HTTP协议一般会和server保持多个连接,每个连接上同时最多只有一个HTTP消息。此种”连接池“方式即为HTTP中的”Keep-alive“。所以即使在HTTP上(或任何协议上),仍然可以做到高效地发送一个请求过去,阻塞,等待server处理完后,再醒来。这就是RPC。面向终端用户的尽量用RestfulHTTP。原因是认知广,直观,编程语言都支持HTTP(包括shell,这样调试起来方便),性能不是那么重要,方便用户share链接。而面向内部系统的话如果机器不多也可以考虑用RestfulHTTP,如果机器很多还是尽量用二进制的RPC吧,性能差距还是很大的。

(0)
上一篇 2022年4月4日
下一篇 2022年4月4日

相关推荐