Go RPC

发布时间: 更新时间: 总字数:231 阅读时间:1m 作者: IP属地: 分享 复制网址

Golang RPC 实现介绍。RPC(Remote Procedure Call Protocol) 远程过程调用协议,是一种通过网络从远程计算机程序上请求服务。

介绍

Golang 中 rpcrpc/jsonrpc 包提供对 RPC 的支持

  • rpc 构建在 TCP 或 HTTP 协议之上,底层数据编码采用 gob,不支持跨语言调用
  • rpc/jsonrpc 构建在 TCP 协议之上,底层数据编码采用 json,支持跨语言调用

定义 RPC 结构体和方法

  • RPC 的结构体和方向必须是公开的
  • 方法:func(请求结构体指针, 响应结构体指针) error

调用方式:

  • 同步调用 func (client *Client) Call(serviceMethod string, args interface{}, reply interface{}) error
  • 异步调用 func (client *Client) Go(serviceMethod string, args interface{}, reply interface{}, done chan *Call) *Call

示例

注册服务的两种方法:

    err := rpc.Register(&objects.Calculate{})
    err := rpc.RegisterName("iamName", &objects.Calculate{})

go-rpc-demo

Home Archives Categories Tags Statistics
本文总阅读量 次 本站总访问量 次 本站总访客数