来源: 最后更新:22-07-18 09:34:33
rpc和restful的区别如下:
HTTP是不是RPC完全取决于client的具体形式。传统的RPC一般是基于二进制协议的,client发个二进制包过来(然后阻塞),server处理完回复一个包,client收到后醒来。在二进制协议中一般可以在包中加个id来指明回复和请求的对应关系,这样我们就能在一个tcp连接上同时发起多个请求和回复。HTTP这种文本协议也可以加id,但由于一些原因(Content-Length可能缺失),即使加了id也做不到一个连接上同时传多个HTTP消息,所以HTTP协议一般会和server保持多个连接,每个连接上同时最多只有一个HTTP消息。此种”连接池“方式即为HTTP中的”Keep-alive“。所以即使在HTTP上(或任何协议上),仍然可以做到高效地发送一个请求过去,阻塞,等待server处理完后,再醒来。这就是RPC。面向终端用户的尽量用Restful HTTP。原因是认知广,直观,编程语言都支持HTTP(包括shell,这样调试起来方便),性能不是那么重要,方便用户share链接。而面向内部系统的话如果机器不多也可以考虑用Restful HTTP,如果机器很多还是尽量用二进制的RPC吧,性能差距还是很大的。
好看的日韩爱情电影1、《情书》日本经典的小清新爱情电影,岩井俊二导演作品。“嘿,你
好看的电影韩国 好看的电影韩国丧尸 金城武姓什么 金城武姓啥 以色列宣布没收约12平方公里巴勒斯坦土地 系30余年来最大规模 殷勤解却丁香结,纵放繁枝散诞春 殷勤解却丁香结,纵放繁枝散诞春的意思