来源: 最后更新:22-07-18 09:34:51
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吧,性能差距还是很大的。
适合湿疹宝宝的奶粉有哪些?首选超启能恩3 很多妈妈会发现,宝宝在更换奶粉喂养后会出现湿疹的情况,这其
高情商的孩子,大多出自这样的家庭! 在什么时候怀孕生男孩的几率大? 孕前带霉菌怀孕容易生女儿吗? 市委常委喊话“高启强”扮演者张颂文