RPC 服务端
概念说明
RPC 是远程过程调用。
调用方像调用本地方法一样发起请求,底层通过网络把参数传给服务端,再把结果返回给客户端。
Go 标准库提供了 net/rpc。
它适合学习 RPC 基础概念,现代项目也常见 gRPC 等更完整的 RPC 框架。
语法/规则
- RPC 服务对象通常是导出类型。
- 可被调用的方法必须是导出方法。
- 方法通常接收两个参数:请求参数和响应指针。
- 方法返回值必须是
error。 - 使用
rpc.Register注册服务。 - 使用
rpc.ServeConn处理连接。
RPC 服务端示例
| |
运行结果:
| |
常见错误
- RPC 方法没有导出,客户端无法调用。
- 第二个参数不是指针,导致不符合
net/rpc方法要求。 - 方法没有返回
error,注册服务时会失败。 - 忘记先启动服务端,客户端连接会失败。