gorpc

gorpc

远程过程调用(Remote Procedure Call,缩写为RPC)是一个计算机通信协议。

net/rpc

在golang中实现RPC非常简单,有封装好的官方库和一些第三方库提供支持。Go RPC可以利用tcp或http来传递数据,可以对要传递的数据使用多种类型的编解码方式。golang官方的net/rpc库使用encoding/gob进行编解码,支持tcp或http数据传输方式,由于其他语言不支持gob编解码方式,所以使用net/rpc库实现的RPC方法没办法进行跨语言调用。

gob编解码,gob是Golang包自带的一个数据结构序列化的编码/解码工具

RPC vs RESTful

  • RPC 操作的是方法和过程,它要操作的是方法对象。RESTful 操作的是资源(resource),而不是方法。
  • RESTful基于 http的语义操作资源,参数的顺序一般没有关系,也很容易的通过代理转换链接和资源位置,从这一点上来说,RESTful 更灵活。
  • RESTful执行的是对资源的操作,增加、查找、修改和删除等,主要是CURD,所以如果你要实现一个特定目的的操作,比如为学生加分。在这种情况下, RPC的实现更有意义,它可以实现一个 Student.Increment(Name, Score) 的方法供客户端调用。

基础实现(待补)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容