一种实现RPC协议转换的方法技术

技术编号:37318722 阅读:10 留言:0更新日期:2023-04-21 22:59
本发明专利技术提供一种实现RPC协议转换的方法,涉及通信协议技术领域。该实现RPC协议转换的方法,包括以下具体步骤:步骤一:信息发送;步骤二:信息拦截;步骤三:信息拆解;步骤四:信息分装;步骤五:信息调用。通过将RPC协议转换成SOFA协议,使两种远程通信组件协议相互一致,保证各种序列化与反序列化的正常运行。保证各种序列化与反序列化的正常运行。保证各种序列化与反序列化的正常运行。

【技术实现步骤摘要】
一种实现RPC协议转换的方法


[0001]本专利技术涉及通信协议
,具体为一种实现RPC协议转换的方法。

技术介绍

[0002]RPC(RemoteProcedureCallProtocol)通信协议为远程过程调用协议,可以使服务调用者可以像调用本地方法一样调用远程服务,且调用过程对调用者是完全透明的。通过RPC协议,客户端可调用存在于传承计算机上的某个对象,就行调用本地程序中的对象一样。
[0003]现有的系统RPC通信组件在升级的过程中需要进行过渡,但是过渡需要时间,此时无法保证两种远程通信组件协议相互一致,因此,各种序列化与反序列化无法正常进行。

技术实现思路

[0004](一)解决的技术问题
[0005]针对现有技术的不足,本专利技术提供了一种实现RPC协议转换的方法,解决了现有的系统RPC通信组件在升级的过程中需要进行过渡,但是过渡需要时间,此时无法保证两种远程通信组件协议相互一致,因此,各种序列化与反序列化无法正常进行的问题。
[0006](二)技术方案
[0007]为实现以上目的,本专利技术通过以下技术方案予以实现:一种实现RPC协议转换的方法,包括以下具体步骤:
[0008]步骤一:信息发送
[0009]服务消费者客户端通过本地服务器发送需要消费的调用请求信息;
[0010]步骤二:信息拦截
[0011]拦截步骤一中的调用信息;
[0012]步骤三:信息拆解
[0013]将步骤二中拦截到的信息进行解码操作;
[0014]步骤四:信息分装
[0015]解码完成后的信息封装成SOFA协议,并发送给客户端;
[0016]步骤五:信息调用
[0017]客户端接收到信息后,将方法、入参等信息序列化成能够进行网络传输的消息体,之后找到远程的服务地址,并且将消息通过网络发送给服务端,服务端接收到消息后进行解码,并且根据解码后的结果调用本地的服务进行相关处理,本地服务执行具体业务逻辑并将处理结果返回给服务端,服务端接收到消息后将返回结果重新打包成消息并通过网络发送至客户端,客户端接收到消息,并进行解码,最后消费者得到调用信息。
[0018]优选的,所述客户端与服务端之间建立TCP连接。
[0019]优选的,所述网络传输主要以二进制代码的方式进行传输。
[0020](三)有益效果
[0021]本专利技术提供了一种实现RPC协议转换的方法。具备以下有益效果:
[0022]本专利技术,通过将RPC协议转换成SOFA协议,使两种远程通信组件协议相互一致,保证各种序列化与反序列化的正常运行。
附图说明
[0023]图1为本专利技术所提出的一种实现RPC协议转换的方法的流程示意图。
具体实施方式
[0024]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0025]实施例:
[0026]如图1所示,本专利技术实施例提供一种实现RPC协议转换的方法,包括以下具体步骤:
[0027]步骤一:信息发送
[0028]服务消费者客户端通过本地服务器发送需要消费的调用请求信息;
[0029]步骤二:信息拦截
[0030]拦截步骤一中的调用信息;
[0031]步骤三:信息拆解
[0032]将步骤二中拦截到的信息进行解码操作;
[0033]在解码操作的过程中会造成类找不到的异常,所有此次加入了字节码动态生成类,通过javass it技术,一直属性类型以及类名字,动态生成类,来达到没有依赖类,但是可以虚拟出类的原理,通过此方法则可以随意虚拟出反序列化没有的类,最终支持达到协议转换的目的;
[0034]步骤四:信息分装
[0035]解码完成后的信息封装成SOFA协议,并发送给客户端;
[0036]步骤五:信息调用
[0037]客户端接收到信息后,将方法、入参等信息序列化成能够进行网络传输的消息体,之后找到远程的服务地址,并且将消息通过网络发送给服务端,服务端接收到消息后进行解码(反序列化),并且根据解码后的结果调用本地的服务进行相关处理,本地服务执行具体业务逻辑并将处理结果返回给服务端,服务端接收到消息后将返回结果重新打包成消息并通过网络发送至客户端,客户端接收到消息,并进行解码(反序列化),最后消费者得到调用信息。
[0038]所述客户端与服务端之间建立TCP连接,远程过程调用的所有交换的数据都在这个连接里传输。连接可以是按需连接(需要调用的时候就先建立连接,调用结束后就立马断掉),也可以是长连接(客户端和服务器建立起连接之后保持长期持有,不管此时有无数据包的发送,可以配合心跳检测机制定期检测建立的连接是否存活有效),多个远程过程调用共享同一个连接,所述网络传输主要以二进制代码的方式进行传输。
[0039]尽管已经示出和描述了本专利技术的实施例,对于本领域的普通技术人员而言,可以
理解在不脱离本专利技术的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本专利技术的范围由所附权利要求及其等同物限定。
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种实现RPC协议转换的方法,其特征在于:包括以下具体步骤:步骤一:信息发送服务消费者客户端通过本地服务器发送需要消费的调用请求信息;步骤二:信息拦截拦截步骤一中的调用信息;步骤三:信息拆解将步骤二中拦截到的信息进行解码操作;步骤四:信息分装解码完成后的信息封装成SOFA协议,并发送给客户端;步骤五:信息调用客户端接收到信息后,将方法、入参等信息序列化成能够进行网络传输的消息体,之后找到远程的服务地址,并且将消息通过网络发送给服务端,服务端接收到消息...

【专利技术属性】
技术研发人员:闫文超
申请(专利权)人:上海通联金融服务有限公司
类型:发明
国别省市:

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

1