前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Golang 语言使用标准库 net/rpc/jsonrpc 包跨语言远程调用

Golang 语言使用标准库 net/rpc/jsonrpc 包跨语言远程调用

作者头像
frank.
发布2020-12-22 14:34:34
9500
发布2020-12-22 14:34:34
举报

01

介绍

Go 语言标准库 net/rpc 默认采用 encoding/gob 包编解码传输数据,gob 编解码方式仅适用于 Go 应用,如果需要跨语言远程调用,可以指定支持跨语言的其他编解码方式,比如 protobuf,或使用 net/rpc 的子包 net/rpc/jsonrpc,它支持JSON-RPC 1.0,通过 json 格式传输数据。

02

Go 语言 net/rpc/jsonrpc 标准库

jsonrpc 是基于 TCP 协议,不支持 HTTP 协议。jsonrpc 采用 JSON 编解码传输数据,而不是采用 gob 编解码方式。其他方面和 net/rpc 一样,可以通过阅读「Go 使用标准库 net/rpc 包」了解相关内容。

03

net/rpc/jsonrpc 怎么使用?

通过一个简单的示例,我们演示 Go 语言标准库 net/rpc/jsonrpc 的使用方法。

RPC 方法:

服务提供方定义一个可导出的 User 对象和一个符合 RPC 方法定义规则的 Register 方法。

服务提供方:

服务提供方注册 user 对象,创建基于 TCP 协议的运行在单个连接上的 JOSN-RPC 服务器。

服务调用方:

服务提供方注册 user 对象后,服务调用方就可以调用 user 对象的 user.Register 方法。调用方法之前,先连接一个指定网络协议和地址的 JSON-RPC 服务,返回一个新创建的客户端。然后,使用客户端调用 user.Register 方法,传递参数,等待返回结果。

04

总结

本文先介绍了 Go 语言标准库 net/rpc/jsonrpc 的编解码方式和功能。即使用 json 编解码传输数据,提供跨语言远程调用的功能。然后,通过一个简单示例来演示了 net/rpc/jsonrpc 的使用方法。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-12-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Go语言开发栈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档