84669 person learning
152542 person learning
20005 person learning
5487 person learning
7821 person learning
359900 person learning
3350 person learning
180660 person learning
48569 person learning
18603 person learning
40936 person learning
1549 person learning
1183 person learning
32909 person learning
最近看到jsonrpc,稍微了解了下rpc,但网上看到的资料基本上都是重复的,而且实在不理解。我想问这样几个问题:rpc与http请求相比,有何区别,有何优点,效率上如何app(ios、andriod)是否支持rpc,门槛高不高rpc与框架或者原有项目整合有一定难度,是否值得
走同样的路,发现不同的人生
rpc全称都知道吧,Remote Procedure Call远程过程调用,拗口的讲法。简单的理解如下:
Remote Procedure Call
你这台计算机(客户端)想调用服务器上的程序中的某一个函数达到你的目的。
rpc我认为是一种协议应用的说法,而http是协议。应用是基于协议之上的,所以有一种rpc的应用方式叫做
rpc
http
基于http的rpc实现。
那么rpc和普通的http请求相比有什么优点?普通的http请求的数据结构简单,然后是无状态的,不保持长时间的连接,同时因为http包含了一个header,会多传输几个字节,造成优化不极致。如果你的服务不care这些,那么你的rpc完全可以基于http去实现,毕竟现有的协议使用起来也简单。
header
app当然都支持rpc,因为他们都支持普通的TCP/IP协议栈。整合有一定难度只能说是自己对rpc解决方案的选择问题。我没有啥推荐,喜欢啥选啥。硬要推荐,推荐鸟哥的yar
TCP/IP
yar
RPC 只是一种风格。是否支持 app,还有与框架或原有项目整合的难度要看你选择的 RPC 框架或者 RPC 库是哪个。如果需要简单易用,且能跨语言,跨平台的话,推荐使用 hprose,这个跟任何现有框架结合都很方便,不需要中间语言,不需要代码生成。本地调用可以直接发布为远程服务。
rpc全称都知道吧,
Remote Procedure Call
远程过程调用,拗口的讲法。简单的理解如下:
rpc
我认为是一种协议应用的说法,而http
是协议。应用是基于协议之上的,所以有一种
rpc
的应用方式叫做那么
rpc
和普通的http
请求相比有什么优点?普通的http请求的数据结构简单,然后是无状态的,不保持长时间的连接,同时因为
http
包含了一个header
,会多传输几个字节,造成优化不极致。如果你的服务不care这些,那么你的
rpc
完全可以基于http
去实现,毕竟现有的协议使用起来也简单。app当然都支持
rpc
,因为他们都支持普通的TCP/IP
协议栈。整合有一定难度只能说是自己对
rpc
解决方案的选择问题。我没有啥推荐,喜欢啥选啥。
硬要推荐,推荐鸟哥的
yar
RPC 只是一种风格。是否支持 app,还有与框架或原有项目整合的难度要看你选择的 RPC 框架或者 RPC 库是哪个。如果需要简单易用,且能跨语言,跨平台的话,推荐使用 hprose,这个跟任何现有框架结合都很方便,不需要中间语言,不需要代码生成。本地调用可以直接发布为远程服务。