Go RPC【draft】

2020/10/21 Go 知识点

RPC

RPC是远程过程调用(Remote Procedure Call)的缩写,通俗地说就是调用远处的一个函数.是分布式系统中不同节点间流行的通信方式。

RPC在Go语言相互之间如何调用:

服务端:

  • rpc.Register函数注册RPC处理方法;
  • 建立tcp、http连接;
  • rpc.ServeConn绑定连接,提供rpc服务;

客户端

  • rpc.Dial拨号RPC服务;
  • client.Call调用具体的RPC方法;

开发人员会有三种角色:首先是服务端实现RPC方法的开发人员,其次是客户端调用RPC方法的人员,最后也是最重要的是制定服务端和客户端RPC接口规范的设计人员。所以需要制定一定的开发规范来约束,避免冲突(参考:RPC入门)。

不同团队会出现技术栈不同,go也支持跨语言、一些基本的数据结构通信,如json,处理复杂不够灵活,不同团队间沟通成本也会增加。谷歌大佬开发了一款数据描述语言Protobuf(Protocol Buffers的简称),二进制流通信,效率很高,之前也是公司内部培训有人列了些数据描述语言性能比较,虽不是压缩解压效率最高,但是毕竟谷歌出品必属精品,社区支持丰富,效率性能也是可以慢慢优化的。

Protobuf

高效率的接口规范描述语言来作为RPC接口的规范基础。

Search

    Table of Contents