json-rpc轻量级远程调用协议介绍及使用

author author     2023-05-01     781

关键词:

参考技术A

json-rpc是基于json的跨语言远程调用协议。比xml-rpc、webservice等基于文本的协议数据传输格小;相对hessian、java-rpc等二进制协议便于调试、实现、扩展,是很优秀的一种远程调用协议。眼下主流语言都已有json-rpc的实现框架,java语言中较好的json-rpc实现框架有jsonrpc4j、jpoxy、json-rpc。三者之中jsonrpc4j既可独立使用。又可与spring无缝集合,比较适合于基于spring的项目开发。

json-rpc协议很easy,发起远程调用时向服务端数据传输格式例如以下:

"method": "sayHello", "params": ["Hello JSON-RPC"], "id": 1

参数说明:

method: 调用的方法名

params: 方法传入的参数。若无参数则传入 []

id : 调用标识符。用于标示一次远程调用过程

server其收到调用请求,处理方法调用,将方法效用结果效应给调用方;返回数据格式:

参数说明:

result: 方法返回值。若无返回值。则返回null。

若调用错误,返回null。

error :调用时错误,无错误返回null。

id : 调用标识符,与调用方传入的标识符一致。

以上就是json-rpc协议规范,很easy,小巧。便于各种语言实现。

2.1、server端Java调用演示样例

jsonrpc4jserver端java演示样例:

2.2、Javaclient调用演示样例

jsonrpc4j的Javaclient调用演示样例:

2.3、JavaScriptclient调用演示样例

基于jsonrpcjs的JavaScriptclient调用演示样例:

2.4、直接GET请求进行调用

无需不论什么client。仅仅需手工拼接参数进行远程调用,请求URL例如以下:

参数说明:

method : 方法名

params :调用参数。json的数组格式[], 将参数需先进行url编码,再进行base64编码

id : 调用标识符,随意值。

json-rpc是一种很轻量级的跨语言远程调用协议。实现及使用简单。

仅需几十行代码,就可以实现一个远程调用的client。方便语言扩展client的实现。

server端有php、java、python、ruby、.net等语言实现,是很不错的及轻量级的远程调用协议。

dubbo——http协议+json-rpc

...望能实现这种跨语言的调用,目前Dubbo中使用“HTTP协议+JSON-RPC”的方式来达到这一目的,其中HTTP协议和JSON都是天然跨语言的标准,在各种语言中都有成熟的类库。下面就重点来分析Dubbo对HTTP协议的支持。首先,会介绍JSON-RPC的... 查看详情

远程调用——hessian使用入门

Hessian是一个轻量级的remotingonhttp工具,使用简单的方法提供了RMI的功能。相比WebService,Hessian更简单、快捷。采用的是二进制RPC协议,因为采用的是二进制协议,所以它很适合于发送二进制数据。常见的远程调用的技术:1、webser... 查看详情

rpc好,还是restful好?(代码片段)

...RPC什么是JSON-RPCJSON-RPC2.0规范中定义JSON-RPC是一个无状态且轻量级的远程过程调用(RPC)协议。本规范主要定义了一些数据结构及其相关的处理规则。它允许运行在基于socket,http等诸多不同消息传输环境的同一进程中。其使用JSON(RFC4... 查看详情

1.saltsock介绍—安装

...不是串行。使用安全的加密协议使用python进行开发优点:轻量级,使用python开发,开源端口:4505发送消息给minion端4506返回结果到master端(重点)二.安装准备:安装三台虚拟机,一台为master,两台为client,关闭防火墙,selinuxvim/etc... 查看详情

rpc原理及实现

...RemoteMethodProtocol)和java的原生序列化。(2)Hessian,是一个轻量级的remotingonhttp工具,使用简单的方法提供了RMI的功能。基于HTTP协议,采用二进制编解码。(3)THRIFT是一种可伸缩的跨语言服务的软件框架。thrift允许你定义一个描... 查看详情

of.jsonrpc(.net轻量级服务框架)

... 的.NET实现,它是基于HTTP或TCP或本地调用方式实现的轻量级松耦合的远程调用服务框架,提供了高效可用、无侵入式的方式搭建自己的服务平台,可以快速开发、调试、发布、调用服务,保持轻量级及可定制性。可以基于它... 查看详情

jsonrpc.js--原生js实现json-rpc协议

...计,那时候自己设计了个消息传递回调过程。最近了解了JSON-RPC协议,更正规,就可以自己实现下。逻辑也不复杂,没有限制底层消息传递的方式,可以应用到更多的场景。在实现中,没有区分服务器端和客户端的概念,获得不... 查看详情

hessian怎样实现远程调用

...中提供了对Hessian的支持。Hessian是由Caocho公司发布的一个轻量级的二进制协议远程调用实现方案,Hessian也是基于HTTP协议的,其工作原理如下:(1).客户端:a.发送远程调用请求:客户端程序—>发送远程调用请求—>Hessian... 查看详情

sylixos中rpc简介

...SylixOS中移植了SUN公司的开源RPC库——libsunrpc,主要用于远程过程调用,现对其通信机制及远程调用过程做简单的介绍。2、RPC通信机制    2.1RPC介绍RPC(RemoteProcedureCallProtocol)——远程过程调用协议,它是一种通过... 查看详情

soap协议介绍

...表示应用程序定义的数据类型的实例,另外还有一个表示远程过程调用和应答的协定。SOAP被设计为可以与各种其它协议结合使用;但这篇文章仅描述如何将SOAP和HTTP及HTTP扩展框架相结合。 1.简介SOAP以XML形式提供了一 查看详情

ldap-轻量级目录访问协议(统一认证)

参考资料LDAP概念和原理介绍我花了一个五一终于搞懂了OpenLDAPLDAP-ApacheDirectoryStudio使用(创建DC.OU及用户)  查看详情

轻量级rpc设计与实现第一版(代码片段)

什么是RPCRPC(RemoteProcedureCallProtocol),远程过程调用,通俗的解释就是:客户端在不知道调用细节的情况下,调用存在于远程计算机上的某个对象,就像调用本地应用程序中的对象一样,不需要了解底层网络技术的协议。简单的整体... 查看详情

轻量级分布式rpc框架

RPC,即RemoteProcedureCall(远程过程调用),说得通俗一点就是:调用远程计算机上的服务,就像调用本地服务一样。RPC可基于HTTP或TCP协议,WebService就是基于HTTP协议的RPC,它具有良好的跨平台性,但其性能却不如基于TCP协议的RPC... 查看详情

企业级工作流解决方案--微服务消息处理模型之服务端处理(代码片段)

...:https://www.jsonrpc.org/specification  JSON-RPC是一个无状态且轻量级的远程过程调用(RPC)协议,它允许运行在基于socket,http等诸多不同消息传输环境的同一进程中。其使用JSON(RFC4627)作为数据格式,它为简单而生。  请求对象 ... 查看详情

轻量级分布式rpc框架

...方面会直接影响RPC的性能,一是传输方式,二是序列化。轻量级分布式RPC框架的具体过程,该框架基于TCP协议Spring: 查看详情

grpc概述及示例

...下RPC. 什么是RPCRPC(RemoteProcedureCallProtocol)——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携... 查看详情

mqtt协议-mqtt协议简介及协议原理

...协议),是一种基于发布/订阅(publish/subscribe)模式的“轻量级”通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布。MQTT最大优点在于,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。做为一... 查看详情

使用 nodejs 调用 JSON-RPC

】使用nodejs调用JSON-RPC【英文标题】:CallJSON-RPCusingnodejs【发布时间】:2018-05-0409:07:11【问题描述】:我正在尝试通过nodejs的请求模块调用json-rpc调用。json-rpc调用格式如下curl--usermyusername--data-binary\'"jsonrpc":"1.0","id":"curltest","method":... 查看详情