rpc-随写随记

什么是rpc?

远程过程调用(英语:Remote Procedure Call,缩写为 RPC)是一个计算机通信协议。该协议允许运行于一台计算机的程序调用另一台计算机的子程序,而程序员无需额外地为这个交互作用编程。如果涉及的软件采用面向对象编程,那么远程过程调用亦可称作远程调用远程方法调用.

rpc需要考虑哪些点?

  1. 传递:参数(值类型)
  2. 传递:参数(引用类型)

复制所有值
规定好协议(序列化?xml,json?)
大端小端编码

  1. 通信协议:(tcp/ip?)
  2. 其他:安全,效率,异步回调等

    requestid,存储request和回调函数的对应关系

rpc vs http?

如果你想只记住一点,那么就请记住 RPC是以动词为中心的, REST是以名词为中
心的, 此处的 动词指的是一些方法, 名词是指资源.

你会发现,以动词为中心,意味着,当你要需要加入新功能时,你必须要添加更多的动词, 
这时候服务器端需要实现 相应的动词(方法), 客户端需要知道这个新的动词并进行调
用.
而以名词为中心, 假使我请求的是 hostname/friends/, 无论这个URI对应的服务怎么
变化,客户端是无需 关注和更新的,而这种变化对客户端也是透明的.
至于其它的区别,如对实现语言的依赖, 耦合性等,这些都是上面提到的这个根本区别所衍生的.

参考

维基百科定义
rpc vs http

    原文作者:canezk
    原文地址: https://www.jianshu.com/p/4c8622a017e9
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞