go中net包中支持rpc远程调用
传输支持http和tcp,放在rpc包里, 序列化支持json,放在jsonrpc包里,jsonrpc目前支持是jsonrpc1.0,
go中的rpc包只支持最简单的远程调用功能,google推荐使用grpc。
形象一点,go中的rpc包完成了一件事:访问一个对象的指定方法,可能通过了网络或io连接, 过程是服务端注册一个对象,通过对象的类型名称访问对象,就像访问一个服务一样
注册之后,对象暴露(首字母大写)的方法就可以被远程访问了。 不同类型的对象可以注册在一个服务端,但一个类型的多个对象注册是错误的。
对象的方法要暴露,要满足以下条件:
- 方法要暴露,即首字母大写
- 方法有两个参数,参数类型要么是内置的,要么是暴露的
- 第二个参数是一个指针
- 返回error