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