标准库的 RPC
RPC 是远程调用的简称, 简单的说就是要调用本地函数一样调用服务器的函数.
Go 语言的标准库已经提供了 RPC 框架和不同的 RPC 实现.
下面是一个服务器的例子:
1type Echo int 2 3func (t *Arith) Hi(args string, reply *string) error { 4 *reply = "echo:" + args 5 return nil 6} 7 8func main() { 9 rpc.Register(new(Echo)) 10 rpc.HandleHTTP() 11 l, e := net.Listen("tcp", ":1234") 12 if e != nil { 13 log.Fatal("listen error:", e) 14 } 15 http.Serve(l, nil) 16}
其中 rpc.Register 用于注册 RPC 服务, 默认的名字是对象的类型名字(这里是 Echo). 如果需要指定特殊的名字, 可以用rpc.RegisterName 进行注册.
...
本文分享自微信公众号 - GoCN(golangchina)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。