一种基于高并发多节点应用的通讯中间模块及其通讯方法技术

技术编号:37394633 阅读:13 留言:0更新日期:2023-04-27 07:31
本发明专利技术提出一种基于高并发多节点应用的通讯中间模块及其通讯方法,通讯中间模块包括一台数据库服务器、至少一台应用服务器;各应用服务器包括负责发送业务数据的客户端和负责接收业务数据的服务端;通讯方法包括业务数据发送方法以及业务数据接收方法,业务数据发送方法中客户端采用专用线程将所有待发电文按组号分组,并为每个电文组开辟一个工作线程发送电文;业务数据接收方法中由服务端接收下级节点发来的电文,解码存至电文接收表,各上级节点按时从电文接收表获取自己的业务数据;本发明专利技术提出的通讯方法支持同时和多个上级节点连接,客户端和服务端均支持重发、重连,节点间支持相互心跳检测,支持高并发的电文发送和接收,数据处理极快。数据处理极快。数据处理极快。

【技术实现步骤摘要】
一种基于高并发多节点应用的通讯中间模块及其通讯方法


[0001]本专利技术涉及一种通信方法,尤其涉及一种基于高并发多节点应用的通讯中间模块及其通讯方法。

技术介绍

[0002]在每一个现代化大型企业中,都会有若干台分布在各种层次的管理和控制计算机。它们之间需要通过数据传输进行通信,上级管理系统需要向各下级生产系统发送管理决策信息,同时,上级管理系统接收来自各下级生产系统的现场数据信息。随着企业发展,业务系统越来越多,上下级系统之间的通讯越来越频繁,通过数据通信和现有的应用进行整合,在提高生产和管理的效率上发挥的作用也越来越重要。
[0003]由于设备品种的多样化、制造年代的差异以及各个供应商在实现互连的方式上的不同,造成了相当复杂的网络互连情况;而且不同通讯代码之间的可移植性很低,使编程人员在实现网络互连时花费大量时间和精力,还给网络维护人员带来了许多的不便,同时,许多大型企业的通讯系统不支持点对点通讯,这就导致通讯系统的高并发能力不足和通讯不稳定,经常会出现电文丢失、电文信息传输不全、短时间内大量电文涌入导致电文堵塞等异常情况。这些问题一旦发生,便需要相关人员进行手动处理电文,耗时耗力;同时,上级管理系统和下级生产系统间的一些连接、信息交互也没有日志记录,对于后期问题查找极为不便。另外,每当有新的产线投入时,都需要进行相关电文程序的安装和数据库新增,不能灵活的进行配置扩展。

技术实现思路

[0004]本专利技术的目的在于:本专利技术提出一种基于高并发多节点应用的通讯中间模块及其通讯方法,用于实现上级节点业务数据与多个下级节点之间的实时通讯,该通讯中间模块支持同时和多个上级节点连接,支持分组并行发送待发数据。
[0005]为实现上述目的,本专利技术提供如下技术方案:一种基于高并发多节点应用的通讯中间模块及其通讯方法,通讯中间模块包括一台数据库服务器以及分别与之连接的至少一台应用服务器;所述应用服务器包括客户端和服务端,应用服务器的客户端负责主动连接下级节点,同时,应用服务器的客户端承接上级节点的业务数据并为上级节点发送业务数据,应用服务器的服务端负责监听其与下级节点的连接状态,同时,应用服务器的服务端接收下级节点发来的业务数据后处理并存储到数据库服务器。
[0006]一种基于高并发多节点应用的通讯方法,包括业务数据发送方法以及业务数据接收方法;其中,业务数据发送方法包括如下步骤:步骤a:基于通讯中间模块中应用服务器客户端接收到各上级节点的待发送业务数据,先将各待发送业务数据的信息识别同步到数据库中的电文配置表和电文明细表,然后各上级节点调用编码器将各待发送业务数据编码为待发电文、并写入电文发送表;步骤b:应用服务器客户端中的工作线程将电文发送表中的待发电文分组发送至
各目标下级节点;步骤c:各目标下级节点对接收到的电文进行解码和校验,并按其接收通道返回一个应答电文,校验成功返回A、校验失败返回B;步骤d:应用服务器客户端接收来自对应目标下级节点的应答电文后识别内容,若返回A,则将电文发送表中该条电文的状态修改为发送完成,并将该电文写入日志;若返回B,则把目标下级节点接收失败的原因加入电文,并将电文反馈给上级节点。
[0007]业务数据接收方法包括如下步骤:步骤e:基于通讯中间模块应用服务器服务端接收到各下级节点发来的电文后,调用解码器根据电文配置表和电文明细表把电文解码成业务数据;步骤f:应用服务器服务端校验解码的业务数据是否接收正确与完整,并按原通道返回一个应答电文,校验成功则返回A,并把该条业务数据写入电文接收表;校验失败则返回B,并带上接收失败的原因;步骤g:各上级节点分别按预设的时间周期根据电文组名从电文接收表获取各自的业务数据。
[0008]进一步地,前述的数据库包括节点信息表、电文配置表、电文明细表、电文接收表、电文发送表;节点信息表包含通讯中间模块连接的所有节点代号、IP、监听端口;电文配置表包含电文名、节点代号、电文长度、分组号、电文类型等信息,一个电文名代表一个业务,节点代号代表该业务数据所要发送的目的节点,可以根据它从节点信息表中找到对应节点的IP等信息,另外,节点代号与分组号代表一个分组的组名;电文明细表包含电文配置表中所有电文的明细信息以及电文里的业务数据、数据类型、长度、精度;电文发送表用于暂存编码器编码的待发送电文;所述电文接收表用于暂存解码器解码的下级节点发业务数据。
[0009]进一步地,基于应用服务器客户端包含的专用线程2和发送线程池1,前述的步骤b包括: b1:专用线程2按预设的时间周期去电文发送表中筛选各待发电文的组名,筛选出组名后,专用线程2分别为这些不同组名各创建一个发送任务放入任务池中;b2:发送线程池1中的各个发送线程先按顺序从任务池中领取发送任务,然后根据所领取任务中的组名从电文发送表中查找出相同组名的待发电文,再将组名相同的待发电文按顺序发送给各目标下级节点;如果电文发送成功,将该电文写入日志;如果电文发送失败,该线程会自动重发该电文。
[0010]进一步地,前述的电文编码器工作时,会从电文配置表和电文明细表中查询电文配置的信息,根据这些信息把需要传送的数据转换成电文格式;反之电文解码器工作时,根据查询出的电文配置信息将电文数据转换为具体业务数据。
[0011]进一步地,前述的应用服务器新建和删除节点通讯连接的方式包括:新建节点通讯连接的方式为:在数据库的节点信息表中编入新建节点的对应信息,应用服务器中包含一个专用线程1,专用线程1根据预设时间周期定时地去数据库的节点信息表中读取新建节点信息,获取到新添加的节点后,使用Netty启动器,应用服务器客户端通过新建节点的IP和监听端口与该节点建立通讯连接;删除节点通讯连接的方式为:在数据库的节点信息表中删除相应节点的信息,应用服务器客户端将主动与该节点断开连接。
[0012]进一步地,前述的应用服务器服务端与各节点间保持通讯连接的方式为:本应用服务器服务端利用Netty的心跳机制每60s向下级节点发送一条心跳电文来保持长连接,同时,下级节点也会每60s向本应用服务器服务端发送一条心跳电文。
[0013]本专利技术提出一种基于高并发多节点应用的通讯中间模块及其通讯方法,采用以上技术方案与现有技术相比,具有以下技术效果:1、本通讯中间模块可以同时与多个节点连接,并进行业务数据的收发操作,不会出现电文卡住的现象;2、本通讯方法业务数据处理极快,客户端采用电文分组发送方式,分组之间互不影响,解决传输阻塞问题,业务传输时间更是毫秒级;服务端也能够在几毫秒内完成电文数据接收和处理,并写入数据库;3、电文数据不会缺失或者丢失,电文发送失败支持自动重发,节点之间支持断线重连,无需人工干预,可靠性高;所有操作都有日志记录,方便分析问题;4、本通讯中间模块是一个独立的通讯设备,不受通讯双方程序的限制;在新增下级节点时,只需进行简单的数据配置即可完成通讯扩展。
附图说明
[0014]图1是本专利技术中电文分组发送示意图;图2是节点信息表、电文配置表和电文明细表关系图。
具体本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于高并发多节点应用的通讯中间模块,用于实现上级节点业务数据与多个下级节点之间的实时通讯,其特征在于:通讯中间模块包括一台数据库服务器以及分别与之连接的至少一台应用服务器;所述应用服务器包括客户端和服务端,应用服务器的客户端负责主动连接下级节点,同时,应用服务器的客户端承接上级节点的业务数据并为上级节点发送业务数据,应用服务器的服务端负责监听其与下级节点的连接状态,同时,应用服务器的服务端接收下级节点发来的业务数据后处理并存储到数据库服务器。2.一种基于高并发多节点应用的通讯方法,其特征在于,基于数据库服务器,以及应用服务器的客户端、服务端的搭建,该通讯中间模块的通讯方法包括业务数据发送方法以及业务数据接收方法;所述业务数据发送方法包括如下步骤:步骤a:基于通讯中间模块中应用服务器客户端接收到各上级节点的待发送业务数据,先将各待发送业务数据的信息识别同步到数据库中的电文配置表和电文明细表,然后各上级节点调用编码器将各待发送业务数据编码为待发电文、并写入电文发送表;步骤b:应用服务器客户端中的工作线程将电文发送表中的待发电文分组发送至各目标下级节点;步骤c:各目标下级节点对接收到的电文进行解码和校验,并按其接收通道返回一个应答电文,校验成功返回A、校验失败返回B;步骤d:应用服务器客户端接收来自对应目标下级节点的应答电文后识别内容,若返回A,则将电文发送表中该条电文的状态修改为发送完成,并将该电文写入日志;若返回B,则把目标下级节点接收失败的原因加入电文,并将电文反馈给上级节点;所述业务数据接收方法包括如下步骤:步骤e:基于通讯中间模块应用服务器服务端接收到各下级节点发来的电文后,调用解码器根据电文配置表和电文明细表把电文解码成业务数据;步骤f:应用服务器服务端校验解码的业务数据是否接收正确与完整,并按原通道返回一个应答电文,校验成功则返回A,并把该条业务数据写入电文接收表;校验失败则返回B,并带上接收失败的原因;步骤g:各上级节点分别按预设的时间周期根据电文组名从电文接收表获取各自的业务数据。3.根据权利要求2所述的一种基于高并发多节点应用的通讯中间模块,其特征在于,所述数据库包括节点信息表、电文配置表、电文明细表、电文接收表、电文发送表;所述节点信息表包含通讯中间模块连接的所有节点代号、IP、监听端口;所述电文配置表包含电文名、节点代号、电文长度、分组号、...

【专利技术属性】
技术研发人员:张园烨
申请(专利权)人:江苏沙钢高科信息技术有限公司
类型:发明
国别省市:

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

1