基于消息中间件的数据通信方法、装置及计算机可读介质与流程

未命名 09-22 阅读:68 评论:0


1.本技术属于通信技术领域,尤其涉及一种基于消息中间件的数据通信方法、装置及计算机可读介质。


背景技术:

2.不同系统平台间的tcp(transmission control protocol,传输控制协议)长链接交互,相对于短连接通信来说,更适用于操作频繁(读写),点对点的通讯。
3.大多数通讯都是通过双方约定好的接口格式来拼组通讯报文,而进行交互,然而,在组报过程中,由于接口格式不同,导致要对每一个接口开发不同的组包程序,使得开发工作量加大,同时接口格式被硬编码在程序里,当接口进行变更后,要重新修改和编译程序;tcp长链接本身需要自身维护链接的长期稳定性,每开发一套涉及tcp长链接的平台服务就要重复开发通信代码,这样造成工作量的增加以及工时的浪费。同时,还导致现有的长链接异步通信部分的代码存在两个明显的缺点:
4.11)socket通信部分的代码重复率过高,并且容易出错,代码维护成本高;
5.12)底层编解码器对不同协议格式的报文进行解析,而编解码器又是通信中容易出错、难定位的环节,会浪费大量的开发精力和时间。


技术实现要素:

6.有鉴于此,本技术提供一种基于消息中间件的数据通信方法、装置及计算机可读介质,用于解决上述技术问题,达到节省开发资源等效果。
7.具体方案如下:
8.一种基于消息中间件的数据通信方法,应用于第一通信端,所述方法包括:
9.获取第二通信端发送的预设统一报文协议格式的第一数据;
10.基于消息中间件提供的对应于所述预设统一报文协议格式的解码器,对所述第一数据进行解码,得到对应的解码结果数据;其中,所述消息中间件内嵌在所述第一通信端和所述第二通信端的相应服务或应用上;
11.对所述解码结果数据进行业务处理。
12.可选的,所述消息中间件为通过预先搭建socket通信框架而构建的中间件;
13.所述socket通信框架包括:
14.网络接口,用于进行所述预设统一报文协议格式的数据的输入输出;
15.输入输出处理器,处于所述网络接口的上层,用于检测通信通道上是否发生数据读写;
16.网络过滤器,处于所述输入输出处理器的上层,至少用于过滤出所述预设统一报文协议格式的数据,以及进行数据的编解码处理;
17.业务逻辑处理器,处于所述网络过滤器的上层,用于收发数据,并对数据进行对应的业务逻辑处理;
18.其中,所述消息中间件为对所述网络过滤器进行封装所得的结果。
19.可选的,所述对所述解码结果数据进行业务处理,包括:
20.通过所述业务逻辑处理器,按照所述解码结果数据对应的数据类型对所述解码结果数据进行相匹配的业务处理。
21.可选的,所述通过所述业务逻辑处理器,按照所述解码结果数据对应的数据类型对所述解码结果数据进行相匹配的业务逻辑处理,包括:
22.通过所述业务逻辑处理器,将所述解码结果数据加入业务处理队列;
23.利用多处理线程,以并行方式对所述业务处理队列中的解码结果数据执行与解码结果数据的数据类型相匹配的业务处理。
24.可选的,在所述获取第二通信端发送的预设统一报文协议格式的第一数据之前,上述方法还包括:
25.向所述socket通信框架导入所需的基础参数,所述基础参数至少包括进行通信链路管理所需的链路地址;
26.基于所述基础参数启动tcp长链接监听或启动与所述第二通信端之间的tcp长链接请求,以基于所述长链接监听或所述长链接请求,进行与所述第二通信端之间的长链接链路的接入并完成链路的初始化工作。
27.可选的,所述启动长链接监听或启动与所述第二通信端之间的长链接请求,包括:
28.调用所述消息中间件,基于所述消息中间件启动长链接监听或启动与所述第二通信端之间的长链接请求。
29.可选的,上述方法还包括:
30.获取待发送至第二通信端的第二数据;
31.基于消息中间件提供的编码器,将所述第二数据编码为所述统一报文协议格式,得到编码结果数据;
32.向所述第二通信端传输所述编码结果数据。
33.可选的,多个第一通信端和多个第二通信端之间能够基于所述消息中间件,进行多对多通信模式的数据通信。
34.一种基于消息中间件的数据通信装置,其特征在于,应用于第一通信端,所述装置包括:
35.获取单元,用于获取第二通信端发送的预设统一报文协议格式的第一数据;
36.解码单元,用基于消息中间件提供的对应于所述预设统一报文协议格式的解码器,对所述第一数据进行解码,得到对应的解码结果数据;其中,所述消息中间件内嵌在所述第一通信端和所述第二通信端的相应服务或应用上;
37.业务处理单元,用于对所述解码结果数据进行业务处理。
38.一种计算机可读介质,其特征在于,其上存储有计算机程序,所述计算机程序包含用于执行如上文任一项所述的方法的程序代码。
39.综上所述,本技术提供了一种基于消息中间件的数据通信方法、装置及计算机可读介质,该方法应用于第一通信端,具体包括:获取第二通信端发送的预设统一报文协议格式的第一数据;基于消息中间件提供的对应于所述预设统一报文协议格式的解码器,对所述第一数据进行解码,得到对应的解码结果数据;对所述解码结果数据进行对应的业务处
理。
40.本技术设计了一套规范通用的报文接口模板,基于该模板为数据通信提供统一报文协议格式,并构建对应于该统一报文协议格式的消息中间件,来用于不同通信端之间的数据通信,可有效克服现有技术中由于数据通信时接口格式不同,导致需要对每一个接口开发不同的组包程序而带来的各种弊端,节省了代码开发量与维护资源,降低了代码开发重复率及底层编解码出错率。
附图说明
41.结合附图并参考以下具体实施方式,本技术各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。
42.图1是本技术提供的基于消息中间件的数据通信方法的一种流程图;
43.图2是本技术提供的连接建立与释放所需的握手处理示意图;
44.图3是本技术提供的socket通信框架示意图;
45.图4(a)和图4(b)是本技术提供的服务器与客户端之间的链接监听与链接请求示意图;
46.图5是本技术提供的服务器与客户端的工作流程图;
47.图6是本技术提供的服务器与客户端之间的多对多通信模式示意图;
48.图7是本技术提供的基于消息中间件的数据通信方法的另一种流程图;
49.图8是本技术提供的基于消息中间件的数据通信装置的组成结构图。
具体实施方式
50.首先对本技术涉及的相关技术术语进行解释说明:
51.简易消息中间件:利用高效可靠的消息传递机制进行平台间的数据交流,并基于数据通信来进行分布式系统的集成,消息有统一的协议格式。
52.组报格式:平台间通讯需要依靠相互约定好的报文格式,组报就是根据消息中间件约定好的格式拼组报文内容,报文可能是字符串消息、字节流消息、文件等等。
53.下面将参照附图更详细地描述本技术的实施例。虽然附图中显示了本技术的某些实施例,然而应当理解的是,本技术可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本技术。应当理解的是,本技术的附图及实施例仅用于示例性作用,并非用于限制本技术的保护范围。
54.本文使用的术语

包括

及其变形是开放性包括,即

包括但不限于

。术语

基于



至少部分地基于

。术语

一个实施例

表示

至少一个实施例

;术语

另一实施例

表示

至少一个另外的实施例

;术语

一些实施例

表示

至少一些实施例

。其他术语的相关定义将在下文描述中给出。
55.需要注意,本技术中提及的

第一



第二

等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
56.需要注意,本技术中提及的

一个



多个

的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为

一个或多个


57.本技术公开一种基于消息中间件的数据通信方法、装置及计算机可读介质,用于通过提供一种消息中间件,通过配置文件的方式实现消息中间件的分布式部署,同时为消息中间件设计一套规范通用的报文接口模板,来达到节省开发资源等的目的。
58.可选的,所设计的规范通用的报文接口模板,既适用于字符流格式,也适用于字节流各格式。
59.本技术提供的基于消息中间件的数据通信方法可应用于第一通信端,参见图1所示的基于消息中间件的数据通信方法流程图,本技术提供的方法至少包括以下处理步骤:
60.步骤101、获取第二通信端发送的预设统一报文协议格式的第一数据。
61.可选的,第一通信端为服务器,第二通信端为客户端,但不限于此,在其它实施方式中,也可以是,第一通信端为客户端,第二通信端为服务器,本技术实施例主要以前一种情况为例进行说明。
62.本技术实施例采用tcp长链接,在服务器与客户端之间进行网络通信,网络通信采用tcp长链接协议时,在真正的读写操作之前,服务器(server)与客户端(client)之间必须建立一个连接,当读写操作完成后,双方不再需要这个连接时可以释放这个连接,如图2所示,连接的建立需要三次握手,而释放则需要4次挥手,每个连接的建立需要一定的资源消耗和时间消耗。
63.在tcp连接保持期间,如果没有数据包发送,需要双方发检测包以维持此连接,即:连接

数据传输

保持连接(心跳)

数据传输

保持连接(心跳)

......

关闭连接(一个tcp链接通道支持多个读写通信);
64.这就要求长链接在没有数据通信时,定时发送数据包(心跳),以维持链接状态;如果有数据通信,数据通信的格式要采用双方约定的协议格式。
65.基于上述的工作机制,本技术实施例在服务器与客户端之间进行通信之前,预先搭建socket通信框架。
66.可选的,具体搭建socket通信之mina框架,结合参见图3中本技术实施例的mina框架示意图,该框架从底至上依次包括:
67.21)网络接口ioservice,用于进行预设统一报文协议格式的数据的输入输出。
68.ioservice处于框架的最底层,负责具体的io相关工作。
69.这里的预设统一报文协议格式,具体是基于为消息中间件设计的规范通用的报文接口模板,而提供的统一报文协议格式。
70.22)输入输出处理器ioprocessor,处于网络接口ioservice的上层,用于检测通信通道上是否发生数据读写。
71.23)网络过滤器iofilter,处于输入输出处理器ioprocessor的上层,至少用于过滤出所述预设统一报文协议格式的数据,以及进行数据的编解码处理。
72.可选的,iofilter定义一组拦截器,这些拦截器可以但不限于包括日志输出、黑名单过滤、数据的编码(write方向)与解码(read方向)等功能,其中数据的编码与解码是最为重要的,至少需包括该功能,本实施例把该组拦截器(也即网络过滤器)的功能,封装成既支持发送,也支持接收的标准接口格式的通信库来作为消息中间件,以避免通信模块部分的代码重复开发、重复维护,达到代码重复率底、接口适用性强、高灵活性的效果。
73.换言之,本技术设计了一套规范通用的报文接口模板,基于该模板为数据通信提
供统一报文协议格式,并构建对应于该统一报文协议格式的消息中间件,该消息中间件具体为对网络过滤器iofilter的功能进行封装所得的结果。
74.容易理解,消息中间件至少提供有对应于上述统一报文协议格式的解码器和编码器,其中,解码器用于对该统一报文协议格式的消息数据进行解码,编码器则用于将数据编码为统一报文协议格式。
75.24)业务逻辑处理器iohandler,处于网络过滤器iofilter的上层,用于针对网络过滤器iofilter进行数据收发,并对数据进行对应的业务逻辑处理。
76.iohandler用于接收、发送业务数据,可作为数据收发接口,同时负责对数据进行业务逻辑处理,并支持在开发阶段编写所需的业务逻辑,应用本技术时,可在封装库为调用者提供可继承的iohandler父类,并根据报文接口模板的格式,设计父接口模板与子接口模板,以及它们之间的层级嵌套规则,以方便调用者根据自身需求开发子类来实现所需的业务逻辑。
77.实际应用中,可基于配置文件的方式实现消息中间件在各服务器/客户端的分布式部署。
78.可选的,本技术实施例还设计消息队列的多线程读、写机制,以支持在iohandler采用多线程方式,基于消息队列进行并行的业务处理。其中,消息队列也可称为业务处理队列,用于存放从iofilter接收的数据或待发送至iofilter的数据。
79.基于上述的通信架构,实际应用中,可选的,可对应提供如下功能模块来支持服务器与客户端之间的通信:
80.链路接入管理模块:用于各进程(服务端进程或客户端进程)初始化链接链路,分配链路资源;
81.配置参数管理模块:主要用于链路地址的增、删、改操作,为链路接入管理模块提供地址数据源;
82.编/解码器(编解码工厂):用于将客户端/服务端的通信报文从消息队列中取出,按对应的统一协议格式进行封装输出,或者是接收、解码、输入,放入消息队列;
83.消息执行模块:用于从消息队列中取出消息报文,根据各条报文的数据类型执行所对应的功能操作。
84.并可在进行数据通信之前,基于中间件封装调用进行服务器、客户端的初始化,以服务器端为例,该过程包括:
85.31)服务器端,首先初始化log日志的存储逻辑及方式,读取配置文件,校验license(许可证)是否合法、是否在有效期内。
86.32)调用中间件对象初始化服务器的链接监听,初始化服务器端时主要是初始化mina框架中ioservice层连接、ioprocessor线程池设置、iofilter编解码器、iohandler业务逻辑处理四大模块,并设置iobuffer的缓存大小、监听端口等必要参数。这样的处理后,可有效避免复杂代码的重复编写。
87.33)模块化处理线程,对消息队列数据使用多线程并行处理,避免数据在处理队列中堆积引起内存爆掉。
88.至此,服务器端就完成所有机制的初始化工作,接收、处理、发送线程均处于待命状态。而客户端的初始化,基本和服务器端相同,主要区别在于客户端初始化链接请求。
89.在此基础上,在服务器与客户端进行通信之前,可在服务器/客户端通过配置文件,向对应的socket通信框架导入所需的基础参数,所述基础参数至少包括进行通信链路管理所需的链路地址;并基于导入的基础参数启动长链接监听或启动与客户端之间的长链接请求,以基于所述长链接监听或所述长链接请求,进行与第二通信端之间的长链接链路接入与链路初始化。
90.其中,对于服务器,具体是启动服务器的长链接监听,对于客户端,具体是启动客户端与服务器之间的长链接请求。
91.进一步,可在服务器/客户端调用消息中间件,基于消息中间件启动服务器的长链接监听,或启动客户端与服务器之间的长链接请求。
92.消息中间件中还可以设置监听封装模块、请求连接模块。参见图4(a)-图4(b)所示的服务器与客户端之间的链接监听与请求示意图,以及图5所示的两端工作流程图,服务器端调用中间件的监听封装模块,客户端调用中间件的请求连接模块,两者共用中间的编解码等业务处理模块,通过消息中间件极大的减少代码的开发量,同时也简化字节流的解析难度,并且如图6所示,可实现服务器和客户端之间多对多的通信模式,一个服务器可以接入多个客户端,同时一个客户端可以连接多个服务器的不同业务微服务,相较于传统的一对多tcp通信模式,该多对多通信模式具有更高的灵活性。
93.在此基础上,可通过本技术提供的基于消息中间件的数据通信方法,实现第一通信端与第二通信端之间的数据通信。
94.以第一通信端、第二通信端分别为服务器和客户端为例,步骤101中,具体可通过网络接口ioservice,接收客户端发送的上述统一报文协议格式的第一数据。
95.服务器、客户端之间以消息形式基于消息中间件进行数据通信。
96.步骤102、基于消息中间件提供的对应于所述预设统一报文协议格式的解码器,对所述第一数据进行解码,得到对应的解码结果数据。
97.服务器底层消息中间件中的解码器,会根据约定好的统一报文协议格式,如字节流数据格式,从接收的第一数据中解析出相应的消息内容,如解析出json格式消息内容,作为解码结果数据。
98.本技术实施例中,消息中间件具体内嵌在第一通信端和第二通信端的相应服务或应用上。
99.值得说明的是,现有技术中,针对消息中间件,需要独立部署中间件服务器,并在中间件服务器上进行消息中间件(如rocketmq)的部署,也就是说,现有技术需基于独立部署方式来部署消息中间件,与现有技术相区别,本技术的消息中间件是不需要独立部署的,具体附着/内置于各个节点端(如,服务器或客户端等)的应用/服务上,安装应用/服务就自带中间件功能,不用额外执行其他操作,适用于小型项目的简单便捷通信,可省去消息中间件(比如rocketmq这类大型消息中间件)的独立部署方式所附带的繁重的部署维护工作,并节省了硬件成本。
100.步骤103、对所述解码结果数据进行对应的业务处理。
101.之后,可通过所述业务逻辑处理器iohandler,按照解码结果数据对应的数据类型对解码结果数据进行相匹配的业务逻辑处理。
102.可选的,具体可通过iohandler,将解码结果数据加入业务处理队列,即加入消息
队列,并利用多处理线程,以并行方式对业务处理队列中的解码结果数据执行与解码结果数据的数据类型相匹配的业务逻辑处理。
103.其中,所述的多处理线程,可以是线程池中的多个处理线程。
104.例如,通过iohandler将解析出的json格式消息内容抛给业务处理队列,之后,处理线程会将业务处理队列里的消息按json数据的不同类型分别对其做不同业务逻辑的处理。
105.可选的,本技术实施例中,用户发起请求给客户端后,客户端调取中间件接口向服务器发送数据,之后客户端不必等待服务器的响应,可根据需求执行其它处理,服务器端监听中间件接口收到数据后,采用异步方式处理数据,以实现各个系统之间的异步调用。
106.综上所述,本技术提供的方法可应用于第一通信端,该方法包括:获取第二通信端发送的预设统一报文协议格式的第一数据;基于消息中间件提供的对应于所述预设统一报文协议格式的解码器,对所述第一数据进行解码,得到对应的解码结果数据;对所述解码结果数据进行对应的业务处理。
107.本技术设计了一套规范通用的报文接口模板,基于该模板为数据通信提供统一报文协议格式,并构建对应于该统一报文协议格式的消息中间件,来用于不同通信端之间的数据通信,可有效克服现有技术中由于数据通信时接口格式不同,导致需要对每一个接口开发不同的组包程序而带来的各种弊端,节省了代码开发量与维护资源,降低了代码开发重复率及底层编解码出错率。
108.在一可选实施例中,参见图7所示的基于消息中间件的数据通信方法流程图,本技术提供的基于消息中间件的数据通信方法,还可以包括以下处理:
109.步骤104、获取待发送至第二通信端的第二数据。
110.仍以第一通信端、第二通信端分别为服务器和客户端为例,具体可在服务器通信框架的业务逻辑处理器iohandler,获取待发送至第二通信端的第二数据。
111.步骤105、基于消息中间件提供的编码器,将所述第二数据编码为所述统一报文协议格式,得到编码结果数据。
112.之后,将第二数据交由消息中间件的编码器,将其编码为所对应的统一报文协议格式,得到编码结果数据。
113.步骤106、向所述第二通信端传输所述编码结果数据。
114.并通过网络接口ioservice,将第二数据对应的编码结果数据传输至客户端。
115.客户端的链接初始化和对数据的收发处理,与服务器端的对应处理基本是相同的,区别主要在于,客户端启动长链接请求,如启动tcp长链接请求,并维持长链接链路,而服务器端启动长链接监听,如启动tcp长链接监听,并管理客户端接入链路。
116.本技术通过配置文件的方式实现消息中间件的分布式部署,同时为消息中间件设计一套规范通用的报文接口模板(既适用于字符流格式,也适用于字节流各格式),达到了节省开发资源的目的,并可有效克服现有技术中由于数据通信时接口格式不同,导致需要对每一个接口开发不同的组包程序而带来的各种弊端。
117.对应于上述的方法,本技术还提供一种基于消息中间件的数据通信装置,该装置的组成结构如图8所示,包括:
118.获取单元10,用于获取第二通信端发送的预设统一报文协议格式的第一数据;
119.解码单元20,用基于消息中间件提供的对应于所述预设统一报文协议格式的解码器,对所述第一数据进行解码,得到对应的解码结果数据;其中,所述消息中间件内嵌在所述第一通信端和所述第二通信端的相应服务或应用上;
120.业务处理单元30,用于对所述解码结果数据进行对应的业务处理。
121.在一实施方式中,所述消息中间件为通过预先搭建socket通信框架而构建的中间件;
122.所述socket通信框架包括:
123.网络接口,用于进行所述预设统一报文协议格式的数据的输入输出;
124.输入输出处理器,处于所述网络接口的上层,用于检测通信通道上是否发生数据读写;
125.网络过滤器,处于所述输入输出处理器的上层,至少用于过滤出所述预设统一报文协议格式的数据,以及进行数据的编解码处理;
126.业务逻辑处理器,处于所述网络过滤器的上层,用于收发数据,并对数据进行对应的业务逻辑处理;
127.其中,所述消息中间件为对所述网络过滤器进行封装所得的结果。
128.在一实施方式中,业务处理单元30,具体用于:
129.通过所述业务逻辑处理器,按照所述解码结果数据对应的数据类型对所述解码结果数据进行相匹配的业务处理。
130.在一实施方式中,业务处理单元30,在通过所述业务逻辑处理器,按照所述解码结果数据对应的数据类型对所述解码结果数据进行相匹配的业务处理时,具体用于:
131.通过所述业务逻辑处理器,将所述解码结果数据加入业务处理队列;
132.利用多处理线程,以并行方式对所述业务处理队列中的解码结果数据执行与解码结果数据的数据类型相匹配的业务处理。
133.在一实施方式中,上述装置还包括初始化单元,用于:
134.向所述socket通信框架导入所需的基础参数,所述基础参数至少包括进行通信链路管理所需的链路地址;
135.基于所述基础参数启动tcp长链接监听或启动与所述第二通信端之间的tcp长链接请求,以基于所述长链接监听或所述长链接请求,进行与所述第二通信端之间的长链接链路的接入并完成链路的初始化。
136.在一实施方式中,初始化单元在启动长链接监听或启动与所述第二通信端之间的长链接请求时,具体用于:
137.调用所述消息中间件,基于所述消息中间件启动长链接监听或启动与所述第二通信端之间的长链接请求。
138.在一实施方式中,获取单元10,还用于获取待发送至第二通信端的第二数据;
139.上述装置还包括编码单元和传输单元;其中,编码单元用于基于消息中间件提供的编码器,将所述第二数据编码为所述统一报文协议格式,得到编码结果数据;传输单元用于向所述第二通信端传输所述编码结果数据。
140.在一实施方式中,多个第一通信端和多个第二通信端之间能够基于所述消息中间件,进行多对多通信模式的数据通信。
141.对于本技术实施例提供的基于消息中间件的数据通信装置而言,由于其与上文方法实施例提供的基于消息中间件的数据通信方法相对应,所以描述的比较简单,相关相似之处请参见上文方法实施例的说明即可,此处不再详述。
142.本技术还提供一种计算机可读介质,其上存储有计算机程序,所述计算机程序包含用于执行如上文任一方法实施例提供的基于消息中间件的数据通信方法的程序代码。
143.在本技术的上下文中,计算机可读介质(机器可读介质)可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
144.需要说明的是,本技术上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本技术中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本技术中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、rf(射频)等等,或者上述的任意合适的组合。
145.上述计算机可读介质可以是电子设备中所包含的;也可以是单独存在,而未装配入电子设备中。
146.需要说明,尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。
147.虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本技术的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
148.以上描述仅为本技术的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本技术中所涉及的申请范围,并不限于上述技术特征的特定组合而成的技术
方案,同时也应涵盖在不脱离上述申请构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本技术中申请的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

技术特征:
1.一种基于消息中间件的数据通信方法,其特征在于,应用于第一通信端,所述方法包括:获取第二通信端发送的预设统一报文协议格式的第一数据;基于消息中间件提供的对应于所述预设统一报文协议格式的解码器,对所述第一数据进行解码,得到对应的解码结果数据;其中,所述消息中间件内嵌在所述第一通信端和所述第二通信端的相应服务或应用上;对所述解码结果数据进行业务处理。2.根据权利要求1所述的方法,其特征在于,所述消息中间件为通过预先搭建socket通信而构建的中间件;所述socket通信框架包括:网络接口,用于进行所述预设统一报文协议格式的数据的输入输出;输入输出处理器,处于所述网络接口的上层,用于检测通信通道上是否发生数据读写;网络过滤器,处于所述输入输出处理器的上层,至少用于过滤出所述预设统一报文协议格式的数据,以及进行数据的编解码处理;业务逻辑处理器,处于所述网络过滤器的上层,用于收发数据,并对数据进行对应的业务逻辑处理;其中,所述消息中间件为对所述网络过滤器进行封装所得的结果。3.根据权利要求2所述的方法,其特征在于,所述对所述解码结果数据进行业务处理,包括:通过所述业务逻辑处理器,按照所述解码结果数据对应的数据类型对所述解码结果数据进行相匹配的业务处理。4.根据权利要求3所述的方法,其特征在于,所述通过所述业务逻辑处理器,按照所述解码结果数据对应的数据类型对所述解码结果数据进行相匹配的业务逻辑处理,包括:通过所述业务逻辑处理器,将所述解码结果数据加入业务处理队列;利用多处理线程,以并行方式对所述业务处理队列中的解码结果数据执行与解码结果数据的数据类型相匹配的业务处理。5.根据权利要求2所述的方法,其特征在于,在所述获取第二通信端发送的预设统一报文协议格式的第一数据之前,还包括:向所述socket通信框架导入所需的基础参数,所述基础参数至少包括进行通信链路管理所需的链路地址;基于所述基础参数启动tcp长链接监听或启动与所述第二通信端之间的tcp长链接请求,以基于所述长链接监听或所述长链接请求,进行与所述第二通信端之间的长链接链路的接入并完成链路的初始化。6.根据权利要求5所述的方法,其特征在于,所述启动长链接监听或启动与所述第二通信端之间的长链接请求,包括:调用所述消息中间件,基于所述消息中间件启动长链接监听或启动与所述第二通信端之间的长链接请求。7.根据权利要求1所述的方法,其特征在于,还包括:获取待发送至第二通信端的第二数据;
基于消息中间件提供的编码器,将所述第二数据编码为所述统一报文协议格式,得到编码结果数据;向所述第二通信端传输所述编码结果数据。8.根据权利要求1所述的方法,其特征在于,多个第一通信端和多个第二通信端之间能够基于所述消息中间件,进行多对多通信模式的数据通信。9.一种基于消息中间件的数据通信装置,其特征在于,应用于第一通信端,所述方法包括:获取单元,用于获取第二通信端发送的预设统一报文协议格式的第一数据;解码单元,用基于消息中间件提供的对应于所述预设统一报文协议格式的解码器,对所述第一数据进行解码,得到对应的解码结果数据;其中,所述消息中间件内嵌在所述第一通信端和所述第二通信端的相应服务或应用上;业务处理单元,用于对所述解码结果数据进行业务处理。10.一种计算机可读介质,其特征在于,其上存储有计算机程序,所述计算机程序包含用于执行如权利要求1-8任一项所述的方法的程序代码。

技术总结
本申请公开一种基于消息中间件的数据通信方法、装置及计算机可读介质,该方法应用于第一通信端,包括:获取第二通信端发送的预设统一报文协议格式的第一数据;基于消息中间件提供的对应于预设统一报文协议格式的解码器,对第一数据进行解码,得到解码结果数据;对解码结果数据进行业务处理。本申请设计了一套规范通用的报文接口模板,基于该模板为数据通信提供统一报文协议格式,并构建对应于该统一报文协议格式的消息中间件,来用于不同通信端之间的数据通信,可有效克服现有技术由于数据通信时接口格式不同,导致需要对每个接口开发不同的组包程序而带来的各种弊端,节省了代码开发量与维护资源,降低了代码开发重复率及底层编解码出错率。编解码出错率。编解码出错率。


技术研发人员:王佳佳
受保护的技术使用者:中国银行股份有限公司
技术研发日:2023.07.25
技术公布日:2023/9/20
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

航空商城 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

评论

相关推荐