什么是rpc?
远程过程调用(英语:Remote Procedure Call,缩写为 RPC)是一个计算机通信协议。该协议允许运行于一台计算机的程序调用另一台计算机的子程序,而程序员无需额外地为这个交互作用编程。如果涉及的软件采用面向对象编程,那么远程过程调用亦可称作远程调用或远程方法调用.
rpc需要考虑哪些点?
- 传递:参数(值类型)
- 传递:参数(引用类型)
复制所有值
规定好协议(序列化?xml,json?)
大端小端编码
- 通信协议:(tcp/ip?)
- 其他:安全,效率,异步回调等
requestid,存储request和回调函数的对应关系
rpc vs http?
如果你想只记住一点,那么就请记住 RPC是以动词为中心的, REST是以名词为中
心的, 此处的 动词指的是一些方法, 名词是指资源.
你会发现,以动词为中心,意味着,当你要需要加入新功能时,你必须要添加更多的动词,
这时候服务器端需要实现 相应的动词(方法), 客户端需要知道这个新的动词并进行调
用.
而以名词为中心, 假使我请求的是 hostname/friends/, 无论这个URI对应的服务怎么
变化,客户端是无需 关注和更新的,而这种变化对客户端也是透明的.
至于其它的区别,如对实现语言的依赖, 耦合性等,这些都是上面提到的这个根本区别所衍生的.