一种远程过程调用方法、装置、设备及介质制造方法及图纸

技术编号:38987880 阅读:12 留言:0更新日期:2023-10-07 10:18
本申请公开了一种远程过程调用方法、装置、设备及介质,涉及计算机技术领域,包括:根据目标请求方法获取远程过程调用服务端的地址信息,并根据地址信息及预设的连接策略确定目标长连接;将目标请求方法转化为消息对象,并将消息对象序列化为缓冲对象,然后将缓冲对象通过目标长连接发送至远程过程调用服务端,以便远程过程调用服务端对解析后得到消息对象进行处理,得到第一处理结果;接收远程调用服务端返回的第一处理结果,并根据消息对象的身份标识号以及基于预设的处理策略对第一处理结果进行处理,得到第二处理结果,以完成目标请求方法的远程过程调用。本申请能够降低远程过程调用的开销和时延,提高消息对象的处理性能。性能。性能。

【技术实现步骤摘要】
一种远程过程调用方法、装置、设备及介质


[0001]本专利技术涉及计算机
,特别涉及一种远程过程调用方法、装置、设备及介质。

技术介绍

[0002]对于一些后台业务模块较多的公司,为了拆分内部模块,需要通过远程过程调用(RPC,Remote Procedure Call)的方式进行分离,但是为了确保业务处理的及时性,对RPC的中间件要求非常高,目前市面上的开原框架经过测试无法满足标准。
[0003]目前市面上有比较多的Java语言(面向对象的编程语言)开发的微服务框架,底层一般采用Grpc、Netty等网络通信框架,通过反射的方式把现有接口进行改造,然后通过路由配置进行远程接口转发。由于目前这些框架主要面对的场景是高并发,而低延迟并不是其解决的目标,所以会对请求的内存和线程做很多缓存以及队列的处理。并且,市面上常用的开源框架,主要面向大量终端访问的场景,需要管理非常多的连接,对这些连接的读写缓存分配少量的缓存,同时分离业务线程池,对业务消息异步排队处理,这样便增加了线程切换和消息队列的缓存延迟,同时开源框架,底层相对会比较复杂,最终增加请求过程的系统的开销和时延。
[0004]为此,如何降低远程过程调用的开销和时延,提高消息对象的处理性能,是本领域亟待解决的问题。

技术实现思路

[0005]有鉴于此,本专利技术的目的在于提供一种远程过程调用方法、装置、设备及介质,能够降低远程过程调用的开销和时延,提高消息对象的处理性能,其具体方案如下:
[0006]第一方面,本申请公开了一种远程过程调用方法,应用于远程过程调用客户端,包括:
[0007]根据目标请求方法获取远程过程调用服务端的地址信息,并根据所述地址信息以及预设的连接策略确定与所述远程过程调用服务端的目标长连接;
[0008]将所述目标请求方法转化为消息对象,并将所述消息对象序列化为缓冲对象,然后将所述缓冲对象通过所述目标长连接发送至所述远程过程调用服务端,以便所述远程过程调用服务端对所述缓冲对象解析后得到所述消息对象,并对所述消息对象进行处理,得到第一处理结果,然后将所述第一处理结果返回至所述远程调用客户端;
[0009]接收所述远程调用服务端返回的所述第一处理结果,并根据所述消息对象的身份标识号以及基于预设的处理策略对所述第一处理结果进行处理,得到第二处理结果,以完成所述目标请求方法的远程过程调用。
[0010]可选的,所述根据所述地址信息以及预设的连接策略确定与所述远程过程调用服务端的目标长连接,包括:
[0011]确定与所述远程过程调用客户端对应的多个长连接;
[0012]根据所述地址信息以及各个所述长连接的权重值确定与所述远程过程调用服务端的目标长连接。
[0013]可选的,所述根据所述消息对象的身份标识号以及基于预设的处理策略对所述第一处理结果进行处理,得到第二处理结果,包括:
[0014]若所述消息对象的身份标识号表征所述目标请求方法为同步请求,则基于同步等待方式对所述第一处理结果进行处理,得到第二处理结果;
[0015]若所述消息对象的身份标识号表征所述目标请求方法为回调请求,则基于异步回调方式对所述第一处理结果进行处理,得到第二处理结果;
[0016]若所述消息对象的身份标识号表征所述目标请求方法为流请求,则基于响应流方式对所述第一处理结果进行处理,得到第二处理结果。
[0017]第二方面,本申请公开了一种远程过程调用方法,应用于远程过程调用服务端,包括:
[0018]通过目标长连接接收远程过程调用客户端发送的缓冲对象;其中,所述目标长连接为所述远程过程调用客户端根据地址信息以及预设的连接策略确定的长连接,所述地址信息为所述远程过程调用客户端根据目标请求方法获取的所述远程过程调用服务端的信息,所述缓冲对象为所述远程过程调用客户端对消息对象进行序列化得到的对象,所述消息对象为所述远程过程调用客户端对目标请求方法转化得到的对象;
[0019]对所述缓冲对象解析后得到所述消息对象,并对所述消息对象进行处理,得到第一处理结果,然后将所述第一处理结果返回至所述远程调用客户端,以便所述远程调用客户端根据所述消息对象的身份标识号以及基于预设的处理策略对所述第一处理结果进行处理,得到第二处理结果,以完成所述目标请求方法的远程过程调用。
[0020]可选的,所述对所述消息对象进行处理,得到第一处理结果之前,还包括:
[0021]根据不同的微服务类型,对不同的所述远程过程调用服务器配置不同的线程执行方式;
[0022]相应的,对所述消息对象进行处理,得到第一处理结果,包括:
[0023]确定所述目标请求方法所对应的目标微服务类型,并根据目标线程执行方式对所述消息对象进行处理,得到第一处理结果。
[0024]可选的,所述远程过程调用方法,还包括:
[0025]利用接收线程接收远程过程调用客户端发送的缓冲对象,并利用若干个IO线程等待并处理所述接收线程的接收结果。
[0026]可选的,所述确定所述目标请求方法所对应的目标微服务类型,并根据目标线程执行方式对所述消息对象进行处理,得到第一处理结果,包括:
[0027]若所述目标请求方法所对应的目标微服务类型为纯内存交易的第一服务,则直接利用当前IO线程对所述消息对象进行处理,得到第一处理结果;
[0028]若所述目标请求方法所对应的目标微服务类型为纯内存交易以外的第二服务,则从当前IO线程切换至目标线程,并利用所述目标线程对所述消息对象进行处理,得到第一处理结果。
[0029]第三方面,本申请公开了一种远程过程调用装置,应用于远程过程调用客户端,包括:
[0030]目标长连接建立模块,用于根据目标请求方法获取远程过程调用服务端的地址信息,并根据所述地址信息以及预设的连接策略确定与所述远程过程调用服务端的目标长连接;
[0031]缓冲对象发送模块,用于将所述目标请求方法转化为消息对象,并将所述消息对象序列化为缓冲对象,然后将所述缓冲对象通过所述目标长连接发送至所述远程过程调用服务端,以便所述远程过程调用服务端对所述缓冲对象解析后得到所述消息对象,并对所述消息对象进行处理,得到第一处理结果,然后将所述第一处理结果返回至所述远程调用客户端;
[0032]处理模块,用于接收所述远程调用服务端返回的所述第一处理结果,并根据所述消息对象的身份标识号以及基于预设的处理策略对所述第一处理结果进行处理,得到第二处理结果,以完成所述目标请求方法的远程过程调用。
[0033]第四方面,本申请公开了一种电子设备,包括:
[0034]存储器,用于保存计算机程序;
[0035]处理器,用于执行所述计算机程序,以实现前述公开的远程过程调用方法。
[0036]第五方面,本申请公开了一种计算机可读存储介质,用于保存计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的远程过程调用方法。
[0037]可见本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种远程过程调用方法,其特征在于,应用于远程过程调用客户端,包括:根据目标请求方法获取远程过程调用服务端的地址信息,并根据所述地址信息以及预设的连接策略确定与所述远程过程调用服务端的目标长连接;将所述目标请求方法转化为消息对象,并将所述消息对象序列化为缓冲对象,然后将所述缓冲对象通过所述目标长连接发送至所述远程过程调用服务端,以便所述远程过程调用服务端对所述缓冲对象解析后得到所述消息对象,并对所述消息对象进行处理,得到第一处理结果,然后将所述第一处理结果返回至所述远程调用客户端;接收所述远程调用服务端返回的所述第一处理结果,并根据所述消息对象的身份标识号以及基于预设的处理策略对所述第一处理结果进行处理,得到第二处理结果,以完成所述目标请求方法的远程过程调用。2.根据权利要求1所述的远程过程调用方法,其特征在于,所述根据所述地址信息以及预设的连接策略确定与所述远程过程调用服务端的目标长连接,包括:确定与所述远程过程调用客户端对应的多个长连接;根据所述地址信息以及各个所述长连接的权重值确定与所述远程过程调用服务端的目标长连接。3.根据权利要求1所述的远程过程调用方法,其特征在于,所述根据所述消息对象的身份标识号以及基于预设的处理策略对所述第一处理结果进行处理,得到第二处理结果,包括:若所述消息对象的身份标识号表征所述目标请求方法为同步请求,则基于同步等待方式对所述第一处理结果进行处理,得到第二处理结果;若所述消息对象的身份标识号表征所述目标请求方法为回调请求,则基于异步回调方式对所述第一处理结果进行处理,得到第二处理结果;若所述消息对象的身份标识号表征所述目标请求方法为流请求,则基于响应流方式对所述第一处理结果进行处理,得到第二处理结果。4.一种远程过程调用方法,其特征在于,应用于远程过程调用服务端,包括:通过目标长连接接收远程过程调用客户端发送的缓冲对象;其中,所述目标长连接为所述远程过程调用客户端根据地址信息以及预设的连接策略确定的长连接,所述地址信息为所述远程过程调用客户端根据目标请求方法获取的所述远程过程调用服务端的信息,所述缓冲对象为所述远程过程调用客户端对消息对象进行序列化得到的对象,所述消息对象为所述远程过程调用客户端对目标请求方法转化得到的对象;对所述缓冲对象解析后得到所述消息对象,并对所述消息对象进行处理,得到第一处理结果,然后将所述第一处理结果返回至所述远程调用客户端,以便所述远程调用客户端根据所述消息对象的身份标识号以及基于预设的处理策略对所述第...

【专利技术属性】
技术研发人员:张昌彪
申请(专利权)人:杭州大道一以科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1