- 流程
- clent -> client stub(客户端存根,存储数据并进行分发) -> socket通信 -> server stub -> server
- stub ,客户端stub用来存储服务器地址,并将数据信息打包,发送给服务端stub,服务端stub接收数据包,并调用服务器的真正程序,并返回数据
- 客户端存根:存储调用的服务器地址,进行数据打包并接收服务端数据进行解析
- 服务端存根:接收请求的数据包,并调用真正的数据方法。王城功能调用,将执行结果打包发送给客户端
- go中rpc和json rpc需要进行方法注册,本质是因为其不支持对象导致,无法直接调用到某个方法
- go rpc注意项目
- 结构体首字母大写,别人可调用
- 函数名必须首字母大写
- 函数第一个参数是接收的,第二个为返回客户端参数,必须为指针类型
- 函数还要有个返回值 error
- rpc和http区别
- api: 对外,restful,一次调用多个方法
- rpc: 对内,直接调用明确的方法,多种协议 tcp udp http2
网友评论