一种跨语言数据交互方法及相关装置制造方法及图纸

技术编号:28124888 阅读:21 留言:0更新日期:2021-04-19 11:37
本申请公开了一种跨语言数据交互方法,应用于Netty框架定义的服务端,包括:注册Spring MVC,并接受客户端的TCP连接;当接收到所述客户端发送的http格式的数据时,对所述数据进行解析,并将所述数据发送到所述Spring MVC,由所述Spring MVC对所述http格式的数据进行处理;当向所述客户端发送消息时,将所述消息封装为http格式,并发送封装后的http格式的所述消息。该方法可扩展性高,耦合低,性能好。本申请还公开了一种跨语言数据交互装置、设备及计算机可读存储介质,均具有上述技术效果。均具有上述技术效果。均具有上述技术效果。

【技术实现步骤摘要】
一种跨语言数据交互方法及相关装置


[0001]本申请涉及计算机
,特别涉及一种跨语言数据交互方法;还涉及一种跨语言数据交互装置、设备以及计算机可读存储介质。

技术介绍

[0002]TCP(Transmission Control Protocol,传输控制协议)数据传输,如今通常使用阻塞IO,其缺点是当用户线程发出IO请求之后,内核会去查看数据是否就绪,如果没有就绪就会等待数据就绪,而用户线程就会处于阻塞状态,用户线程交出CPU。当数据就绪之后,内核会将数据拷贝到用户线程,并返回结果给用户线程,用户线程才解除block状态。由此会导致在大数量传输时,对CPU内存的严重消耗。若使用NIO的方式,需要开发人员熟练掌握Selector,ServerSocketChannel等API的使用,还需要进行可靠性能力补齐,工作量和难度都非常大,同时还要面临的问题是客户端的断连,重连,网络闪断,半包读写,失败缓存,网络拥塞和一场码流的处理等问题。
[0003]针对跨语言数据交互,目前通常采用消息中间进行跨语言数据交互。然而对于消息中间件,其需要占用内存,且需要保证消息中间件稳定,一旦消息中间件出现宕机,会导致实时数据反馈异常。另外,在跨语言数据交互时,多个服务之间的数据格式不统一,如果对所有的数据格式进行解析,会导致方法导致过于冗余,且代码扩展性比较低,无法较好的满足新服务接入的需求。
[0004]有鉴于此,提供一种性能高,可扩展性高,耦合低的跨语言数据交互方法已成为本领域技术人员亟待解决的技术问题。

技术实现思路

[0005]本申请的目的是提供一种跨语言数据交互方法,可扩展性高,耦合低,性能好。本申请的另一个目的是提供一种跨语言数据交互装置、设备以及计算机可读存储介质,均具有上述技术效果。
[0006]为解决上述技术问题,本申请提供了一种跨语言数据交互方法,应用于Netty框架定义的服务端,包括:
[0007]注册Spring MVC,并接受客户端的TCP连接;
[0008]当接收到所述客户端发送的http格式的数据时,对所述数据进行解析,并将所述数据发送到所述Spring MVC,由所述Spring MVC对所述http格式的数据进行处理;
[0009]当向所述客户端发送消息时,将所述消息封装为http格式,并发送封装后的http格式的所述消息。
[0010]可选的,所述注册Spring MVC包括:
[0011]将MokeServletContext注册到所述Spring MVC的webApplicationContext容器上下文中;
[0012]将所述webApplicationContext容器注册到所述Spring MVC的
DispatcherServlet中。
[0013]可选的,对所述数据进行解析包括:
[0014]通过MyRequestHandler与MyResponseHandler对所述数据进行解析。
[0015]可选的,所述将所述消息封装为http格式包括:
[0016]通过ResponseEncoder与RequestEncoder将所述消息封装为http格式。
[0017]可选的,还包括:
[0018]通过固定长度的编码器进行拆包与粘包处理。
[0019]为解决上述技术问题,本申请还提供了一种跨语言数据交互装置,包括:
[0020]注册模块,用于注册Spring MVC,并接受客户端的TCP连接;
[0021]解析模块,用于当接收到所述客户端发送的http格式的数据时,对所述数据进行解析,并将所述数据发送到所述Spring MVC,由所述Spring MVC对所述http格式的数据进行处理;
[0022]封装模块,用于当向所述客户端发送消息时,将所述消息封装为http格式,并发送封装后的http格式的所述消息。
[0023]可选的,所述注册模块具体用于将MokeServletContext注册到所述Spring MVC的webApplicationContext容器上下文中;将所述webApplicationContext容器注册到所述Spring MVC的DispatcherServlet中。
[0024]可选的,还包括:
[0025]拆包与粘包模块,用于通过固定长度的编码器进行拆包与粘包处理。
[0026]为解决上述技术问题,本申请还提供了一种跨语言数据交互设备,包括:
[0027]存储器,用于存储计算机程序;
[0028]处理器,用于执行所述计算机程序时实现如上任一项所述的跨语言数据交互方法的步骤。
[0029]为解决上述技术问题,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上任一项所述的跨语言数据交互方法的步骤。
[0030]本申请所提供的跨语言数据交互方法,应用于Netty框架定义的服务端,包括:注册Spring MVC,并接受客户端的TCP连接;当接收到所述客户端发送的http格式的数据时,对所述数据进行解析,并将所述数据发送到所述Spring MVC,由所述Spring MVC对所述http格式的数据进行处理;当向所述客户端发送消息时,将所述消息封装为http格式,并发送封装后的http格式的所述消息。
[0031]可见,本申请所提供的跨语言数据交互方法,将Netty框架与Spring MVC相结合,利用Netty框架与Spring MVC实现跨语言数据交互,不依赖第三方中间件就可以实现跨语言数据交互。在代码层面上,研发人员无需关注底层逻辑,以及无需担心各个服务之间的交互消息格式,扩展业务时只需按照开发Spring MVC的流程进行扩展即可。通过使用Spring MVC,数据交互的入参,和接口返回值都能够通过Spring MVC自带的转换器来实现统一化。在性能上,相较于传统的Socket阻塞传输,使用Netty框架的异步通信能力,能够极大的提升数据传输性能。
[0032]本申请所提供的跨语言数据交互装置、设备以及计算机可读存储介质均具有上述
技术效果。
附图说明
[0033]为了更清楚地说明本申请实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0034]图1为本申请实施例所提供的一种跨语言数据交互方法的流程示意图;
[0035]图2为本申请实施例所提供的一种跨语言数据交互装置的示意图;
[0036]图3为本申请实施例所提供的一种跨语言数据交互设备的示意图。
具体实施方式
[0037]本申请的核心是提供一种跨语言数据交互方法,可扩展性高,耦合低,性能好。本申请本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种跨语言数据交互方法,其特征在于,应用于Netty框架定义的服务端,包括:注册Spring MVC,并接受客户端的TCP连接;当接收到所述客户端发送的http格式的数据时,对所述数据进行解析,并将所述数据发送到所述Spring MVC,由所述Spring MVC对所述http格式的数据进行处理;当向所述客户端发送消息时,将所述消息封装为http格式,并发送封装后的http格式的所述消息。2.根据权利要求1所述的跨语言数据交互方法,其特征在于,所述注册Spring MVC包括:将MokeServletContext注册到所述Spring MVC的webApplicationContext容器上下文中;将所述webApplicationContext容器注册到所述Spring MVC的DispatcherServlet中。3.根据权利要求1所述的跨语言数据交互方法,其特征在于,对所述数据进行解析包括:通过MyRequestHandler与MyResponseHandler对所述数据进行解析。4.根据权利要求1所述的跨语言数据交互方法,其特征在于,所述将所述消息封装为http格式包括:通过ResponseEncoder与RequestEncoder将所述消息封装为http格式。5.根据权利要求1所述的跨语言数据交互方法,其特征在于,还包括:通过固定长度的编码器进行拆包与粘包处理。...

【专利技术属性】
技术研发人员:邓孝超范渊
申请(专利权)人:杭州安恒信息技术股份有限公司
类型:发明
国别省市:

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

1