CN113626226A - 数据通信方法及装置、处理器、计算机存储介质 - Google Patents
数据通信方法及装置、处理器、计算机存储介质 Download PDFInfo
- Publication number
- CN113626226A CN113626226A CN202111189826.3A CN202111189826A CN113626226A CN 113626226 A CN113626226 A CN 113626226A CN 202111189826 A CN202111189826 A CN 202111189826A CN 113626226 A CN113626226 A CN 113626226A
- Authority
- CN
- China
- Prior art keywords
- channel
- communication
- pool
- thread
- communication channel
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种数据通信方法及装置、处理器、计算机存储介质。其中,该方法包括:响应通信业务的唤醒操作,调用前台线程在第一通道池中确定目标通信通道,其中,第一通道池用于存储可用通信通道;采用目标通信通道进行数据通信;定时调用后台线程对第二通道池中的异常通信通道进行维护,其中,第二通道池用于存储通信异常的通信通道,第二通道池与第一通道池相互独立,前台线程和后台线程相互独立,第一通道池的通信通道的使用频率高于第二通道池的通信通道的使用频率。本发明解决了相关技术中的多个通信通道在切换时采用单线程运行的方式存在效率低下的技术问题。
Description
技术领域
本发明涉及数据通信领域,具体而言,涉及一种数据通信方法及装置、处理器、计算机存储介质。
背景技术
当目标的通信通道有多个的情况下,市面上主要采用首次通信统一建立全部通道连接,然后采用轮询或是随机选取的方式选择一个通信通道进行通信。其中,因为首次连接时候要统一建立多个通信通道,消耗的时间长,内存大,并且通信通道越多首次连接的效率越低。
另外,采用轮询或者随机的方式进行通道选择,假如50%的通道都出现了问题,这些通道选择方式就有50%概率命中有问题的通道,大大增加高可用切换的负担和降低了整体的通信质量。
再次,一般系统都是单线程运行,在只有一个线程的情况下,该线程既要负责业务调度的高可用,又要负责通道回收以及断线重连,又进一步增加了业务复杂性,使得效率进一步降低。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种数据通信方法及装置、处理器、计算机存储介质,以至少解决相关技术中的多个通信通道在切换时采用单线程运行的方式存在效率低下的技术问题。
根据本发明实施例的一个方面,提供了一种数据处理方法,包括:响应通信业务的唤醒操作,调用前台线程在第一通道池中确定目标通信通道,其中,所述第一通道池用于存储可用通信通道;采用所述目标通信通道进行数据通信;定时调用后台线程对第二通道池中的异常通信通道进行维护,其中,所述第二通道池用于存储通信异常的通信通道,所述第二通道池与所述第一通道池相互独立,所述前台线程和所述后台线程相互独立,所述第一通道池的通信通道的使用频率高于所述第二通道池的通信通道的使用频率。
可选的,响应通信业务的唤醒操作,调用前台线程在第一通道池中确定目标通信通道包括:响应所述通信业务的唤醒操作,调用并开启所述前台线程;通过所述前台线程在所述第一通道池中查找所述通信业务对应的目标通信通道;在所述第一通道池中没有查找到目标通信通道的情况下,通过所述前台线程创建所述通信业务的目标通信通道。
可选的,通过所述前台线程在所述第一通道池中查找所述通信业务对应的目标通信通道包括:通过所述前台线程查询所述通信业务的连接信息;根据所述连接信息在所述第一通道池中查找所述连接信息对应的目标通信通道。
可选的,在所述第一通道池中没有查找到目标通信通道的情况下,将查找过的不可用的通信通道放入所述第二通道池中;在通过所述前台线程创建所述通信业务的通信通道不可用的情况下,将创建的不可用的通信通道放入所述第二通道池中;重新查找或创建目标通信通道,直至查找到所述目标通信通道,或者创建所述目标通信通道。
可选的,定时调用后台线程对第二通道池中的异常通信通道进行维护包括:响应预设的定时任务的唤醒操作,调用并开启所述后台线程;通过所述后台线程检测所述第二通道池中的异常通信通道的关闭时长是否达到预设时长;在所述关闭时长达到预设时长的情况下,对所述异常通信通道进行回收。
可选的,通过所述后台线程检测所述第一通道池中的可用通信通道的连接状态是否异常;在检测到所述可用通信通道的连接状态异常的情况下,将所述可用通信通道更新为异常通信通道,并存入所述第二通道池中;对所述第二通道池中的异常通信通道按照预设顺序进行依次重建,将重建成功的异常通信通道更新为可用通信通道,并存入所述第一通道池中。
可选的,响应通信业务的唤醒操作,调用前台线程在第一通道池中确定目标通信通道之前,还包括:创建所述前台线程和所述后台线程并行的双线程工作模式,并定义所述前台线程用于业务调度和通信选择,定义所述后台线程用于通道检测和通道维护;将通道池拆分为互相独立的第一通道池和第二通道池。
根据本发明实施例的另一方面,还提供了一种数据通信装置,包括:前台模块,用于响应通信业务的唤醒操作,调用前台线程在第一通道池中确定目标通信通道,其中,所述第一通道池用于存储可用通信通道;通信模块,用于采用所述目标通信通道进行数据通信;后台模块,用于定时调用后台线程对第二通道池中的异常通信通道进行维护,其中,所述第二通道池用于存储通信异常的通信通道,所述第二通道池与所述第一通道池相互独立,所述前台线程和所述后台线程相互独立,所述第一通道池的通信通道的使用频率高于所述第二通道池的通信通道的使用频率。
根据本发明实施例的另一方面,还提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述中任意一项所述的数据处理方法。
根据本发明实施例的另一方面,还提供了一种计算机存储介质,所述计算机存储介质包括存储的程序,其中,在所述程序运行时控制所述计算机存储介质所在设备执行上述中任意一项所述的数据处理方法。
在本发明实施例中,采用响应通信业务的唤醒操作,调用前台线程在第一通道池中确定目标通信通道,其中,第一通道池用于存储可用通信通道;采用目标通信通道进行数据通信;定时调用后台线程对第二通道池中的异常通信通道进行维护,其中,第二通道池用于存储通信异常的通信通道,第二通道池与第一通道池相互独立,前台线程和后台线程相互独立,第一通道池的通信通道的使用频率高于第二通道池的通信通道的使用频率。通过将线程拆分为前台线程与后台线程,前台线程,负责业务调度和通道选择,达到了提高业务命中可用通道概率的目的;后台线程,负责通道检测和通道维护,达到了提高通道的稳定性的目的,从而实现了高性能切换通信通道的技术效果,进而解决了相关技术中的多个通信通道在切换时采用单线程运行的方式存在效率低下的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种数据通信方法的流程图;
图2是根据本发明实施方式的前台线程处理的示意图;
图3是根据本发明实施方式的后台线程处理的示意图;
图4是根据本发明实施例的一种数据通信装置的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
下面对本实施例出现的相关名称进行解释说明。
前台线程,负责业务调度和通道选择,关注业务调度的效率和成功率。
后台线程,负责通道检测和通道维护,关注通道的稳定性。
第一通道池,存放高概率正常的通信通道,是通道选择的首要途径。
第二通道池,存放有问题但近期有几率还会使用的通信通道。
根据本发明实施例,提供了一种数据通信方法的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本发明实施例的一种数据通信方法的流程图,如图1所示,该方法包括如下步骤:
步骤S102,响应通信业务的唤醒操作,调用前台线程在第一通道池中确定目标通信通道,其中,第一通道池用于存储可用通信通道;
步骤S104,采用目标通信通道进行数据通信;
步骤S106,定时调用后台线程对第二通道池中的异常通信通道进行维护,其中,第二通道池用于存储通信异常的通信通道,第二通道池与第一通道池相互独立,前台线程和后台线程相互独立,第一通道池的通信通道的使用频率高于第二通道池的通信通道的使用频率。
通过上述步骤,采用响应通信业务的唤醒操作,调用前台线程在第一通道池中确定目标通信通道,其中,第一通道池用于存储可用通信通道;采用目标通信通道进行数据通信;定时调用后台线程对第二通道池中的异常通信通道进行维护,其中,第二通道池用于存储通信异常的通信通道,第二通道池与第一通道池相互独立,前台线程和后台线程相互独立,第一通道池的通信通道的使用频率高于第二通道池的通信通道的使用频率。通过将线程拆分为前台线程与后台线程,前台线程,负责业务调度和通道选择,达到了提高业务命中可用通道概率的目的;后台线程,负责通道检测和通道维护,达到了提高通道的稳定性的目的,从而实现了高性能切换通信通道的技术效果,进而解决了相关技术中的多个通信通道在切换时采用单线程运行的方式存在效率低下的技术问题。
上述的唤醒操作可以是在业务系统在依据请求进行通信任务时,唤醒前台线程,通过前台线程对执行该通信任务的目标通信通道进行选择,该目标通信通道可以是前台线程对应的第一通道池中多个可用通信通道中的一个。前台线程在第一通道池中选择目标通信通道时可以采用按条件筛选,或者按顺序遍历查找符合通信任务需求的可用通信通道,作为上述目标通信通道。通过目标通信通道就可以执行上述通信任务进行通信任务的数据通信。
在前台线程运行的同时,可以通过并行运行后台线程,以对后台进程对应的第二通道池进行所有异常通信通道的维护,当然后台线程的作用还可以对通信通道进行检测,实际上在检测时,不仅仅是基于对异常通信通道是否可用进行检测,还包括对第一通道池中可用通信通道是否异常进行检测。
在第二通道池中的异常通信通道被检测到可用时,就可以将其加入到第一通道池中,作为待选使用,从而实时对异常的通信通道进行维护,其后台线程与前台线程互不干扰,互相独立,在运行时二者都可以保证较高的运行速率,从而在保证数据通信的高效率的同时,保证了通信通道更新和维护的高效率。
在第一通道池中的可用通信通道被检测到异常时,例如,状态异常,则可以将其加入到第二通道池中,暂停使用,等待后台线程维护后,在确定是否可用,若维护后可用,则可以加入第一通道池继续使用,若维护后不可用,则可以等待下一次继续进行维护,若多次维护仍不可用,或者在预定时间内都没有通过维护而变成可用通信通道的情况下,就可以对该通信通道进行舍弃,避免其占用不必要的空间。通过后台线程对第一通道池和第二通道池中的通信通道进行维护和更新,保证了第一通道池中可用通信通道的有效性,进而保证了前台线程进行数据通信的准确性和效率。
具体的,上述的前台线程和后台线程可以是从传统的单线程改成双线程运行后,人为将双线程划分为前台线程和后台线程,并定义前台线程独立负责业务调度和通道选择,前台线程对应第一通道池(即活跃池),第一通道池用于存储高概率正常可用通信通道,是前台线程进行业务调度选择通道的首要目标,也即是前台线程在通道选择时,是在第一通道池中进行通道选择,并不涉及前台线程访问和调用第二通道池的通信通道。
将前台线程的通信通道选择,与后台线程的通信通道维护进行解耦,前台线程对第一通道池通信通道的选择可以不考虑对通信通道的维护,在选择的通信通道不可用时直接列为异常,转入第二通道池,由后台线程对其进行维护。相比于现有技术中单线程的运行,既需要线程进行通道选择,在选的通道不可用的情况下,还要对其进行维护,不仅导致通道选择的效率低,而且维护的效率也低,线程运行的整体效率更低。本申请的双线程运行方式具有更好的效果,不仅可以保证前台线程和后台线程的高效运行,而且可以提高前台线程和后台线程运行的准确率,不容易出错。
上述第一通道池和第二通道池可以是将传统的当通道池进行划分,划分成两个通道池,分别定义为第一通道池和第二通道池,第一通道池和第二通道池互相独立,互不干扰,第一通道池和第二通道池之间可以由前台线程或后台线程进行通信通道的迁移,第一通道池的可用通信通道用于前台线程进行通道选择,第二通道池的异常通信通道用于后台线程进行通道维护。这样就可以保证第一通道池中的通道数量较少且全部为可用通信通道,在进行通道选择时,可以针对较少数量的通道进行选择,从而相比于现有技术在全部的通信通道中进行选择,具有更高的效率。还可以保证第二通道池中的通道数量较少,且全部为异常通信通道,在进行通道维护时,可以持续进行维护,提高通道维护的效率。
上述双线程中的后台线程负责通道的可用性检测与维护,后台线程可以检测第一通道池里面的所有的可用通信通道,将关闭时间达到预设时间阈值,没有进行启用的可用通信通道进行回收,也即是将其加入到第二通道池中,保证第一通道池循环利用。上述后台线程可以依次检测第一通道池里面所有可用通信通道的连接状态,把连接状态有问题的可用通信通道,更新为异常通信通道,放入第二通道池(即非活跃池)中。上述后台线程还可以对第二通道池中的异常通信通道进行维护,具体可以依次对第二通道池中异常通信通道进行重新建立连接,若建立成功,则将异常通信通道更新为可用通信通道,并重新放入第一通道池中,以供前台线程进行通道选择,若建立失败则直接抛弃。
可选的,响应通信业务的唤醒操作,调用前台线程在第一通道池中确定目标通信通道包括:响应通信业务的唤醒操作,调用并开启前台线程;通过前台线程在第一通道池中查找通信业务对应的目标通信通道;在第一通道池中没有查找到目标通信通道的情况下,通过前台线程创建通信业务的目标通信通道。
业务系统在依据请求进行通信任务时,将会对前台线程进行唤醒操作,前台线程会先在数据库中拉取第一通道池和第二通道池的通信通道信息,然后前台线程在第一通道池内的所有可用通信通道中对目标通信通道进行查找,查找方式可以是采用按条件筛选,或者按顺序遍历的查找方式对目标通信通道进行查找,查找结果可以是第一通道池中多个可用通信通道中的一个目标通信通道,也可以是没有找到目标通信通道,如果没有找到目标通信通道,则在前台线程的调度下创建目标通信通道,并且将该通信通道放入第一通道池中。若创建的目标通信通道不可用,则直接将其放入第二通道池,并重新进行创建。从而保证了前台线程可以有效确定目标通信通道,以执行通信任务。
由于第一通道池中的可用通信通道处于动态更新过程,包括后台线程从第二通道池放入的维护后可用的通信通道,则在上述重新创建目标通道之前还可以对第一通道池中的可用通信通道重新进行查找,若其仍然没有查找到目标通信通道,再执行创建目标通信通道的操作。
可选的,通过前台线程在第一通道池中查找通信业务对应的目标通信通道包括:通过前台线程查询通信业务的连接信息;根据连接信息在第一通道池中查找连接信息对应的目标通信通道。
前台线程对目标通信通道的查找是将通信业务所携带的连接信息作为查找条件确定目标通信通道,连接信息可以是通信请求信息中的目标地址,通信协议,通信通道的起始地址和终止地址,以及通信通道对应的通信协议等,只有第一通道池中的可用通信通道满足连接信息时,才将该可用通信通道作为目标通信通道。
可选的,在第一通道池中没有查找到目标通信通道的情况下,将查找过的不可用的通信通道放入第二通道池中;在通过前台线程创建通信业务的通信通道不可用的情况下,将创建的不可用的通信通道放入第二通道池中;重新查找或创建目标通信通道,直至查找到目标通信通道,或者创建目标通信通道。
在前台线程在第一通道池中查找目标通信通道的过程中,在没有找到目标通信通道时,若在目标通信通道查找中发现不可用通信通道(此通道可能不能供任何通信业务使用),那么将此不可用通信通道放入第二通道池中,然后继续在第一通道池中的剩余的可用通信通中道查找目标通信通道,若在对第一通道池中的所有通信通道查找结束,仍然未能找到目标通信通道,则通过前台线程创建通信通道,如果创建的通信通道仍然是不可用通信通道,那么将创建的不可用通信通道放入第二通道池中,继续创建新的通信通道,直到创建的通信通道为满足连接信息的目标通信通道,就将目标通信通道放入第一通道池中,此时,前台线程结束查找或创建通信通道的操作。
在查找过程中将不可用的通信通道放入第二通道池,以及在创建过程中将不可用通道放入第二通道池,都是为了保证第一通道池中的可用通信通道的有效性,保持在第一通道池中查找到目标通信通道概率和效率,也即是保证了前台线程进行通道选择的效率和准确率。
可选的,定时调用后台线程对第二通道池中的异常通信通道进行维护包括:响应预设的定时任务的唤醒操作,调用并开启后台线程;通过后台线程检测第二通道池中的异常通信通道的关闭时长是否达到预设时长;在通道关闭时长达到预设时长的情况下,对异常通信通道进行回收。
由于后台线程不直接与业务系统前端交互,也即是不会被通信业务唤醒,因此,业务系统通过设定定时任务的方式,对后台线程进行定时唤醒操作,后台线程通过对第二通道池中通信通道采用顺序遍历或者折半查找的方式检测第二通道池中异常通信通道的关闭时长是否达到预设时长,预设时长可以是指对第二通道池中所容纳最大通信通道存储量的所有通信通道进行完整检测维护所需的最大时长,在通信通道关闭时长达到预设时长的情况下,则将此异常通信通道进行回收,达到减少第二通道池中非必要异常通信通道的占用通道池空间的目的,实现后台线程对第二通信通道高效维护的技术效果。
可选的,通过后台线程检测第一通道池中的可用通信通道的连接状态是否异常;在检测到可用通信通道的连接状态异常的情况下,将可用通信通道更新为异常通信通道,并存入第二通道池中;对第二通道池中的异常通信通道按照预设顺序进行依次重建,将重建成功的异常通信通道更新为可用通信通道,并存入第一通道池中。
在业务系统对后台线程的唤醒情况下,后台线程还可以检测第一通道池的所有可用通信通道的连接状态,如果可用通信通道的连接状态正常,那么将继续检测下一个可用通信通道,如果连接状态异常则将可用通信通道作为异常通信通道放入第二通道池中,上述通信通道连接状态异常可以是通信通道长时间处于通道连接状态或者通信通道进行数据交互过程中数据丢失严重,当然,后台线程也可以对第二通道池中的异常通信通道按照预设顺序依次重新建立通信连接,建立成功,则将该通信通道更新为可用通信通道,并将其存入第一通道池中。
可选的,响应通信业务的唤醒操作,调用前台线程在第一通道池中确定目标通信通道之前,还包括:创建前台线程和后台线程并行的双线程工作模式,并定义前台线程用于业务调度和通信选择,定义后台线程用于通道检测和通道维护;将通道池拆分为互相独立的第一通道池和第二通道池。
也即是在通过前台线程和后台线程执行通信业务之前,需要对前台线程和后台线程进行创建。具体可以将传统方式中的单线程,修改为双线程,分别为上述前台线程和后台线程,定义前台线程用于业务调度和通信选择,定义后台线程用于通道检测和通道维护。同时考虑到前台线程和后台线程需要具有各自独立的通道池,需要对前台线程和后台线程分别对应的第一通道池和第二通达池进行创建,具体可以将传统方式中单线程对应的通道池拆分为互相独立的第一通道池和第二通道池。
需要说明的是,本申请实施例还提供了一种可选的实施方式,下面对该实施方式进行详细说明。
本实施方式提供了一种基于双线程的通信通道高性能切换,故障恢复的数据通信装置,解决了如何快速进行通信通道选择和故障修复的需求,通过将线程拆分为前台线程和后台线程,两个线程各自聚焦自己的领域;将通道池分为存放两种不同的通信通道的第一通道池和第二通道池,两个通道池供两个线程进行调度。通过这种通信通道的选择方式高效的完成首次通信通道的连接。
本实施方式的具体步骤如下:
1) 线程拆分:从传统的单线程运行改成双线程运行,两个线程分别为前台线程和后台线程,前台线程负责业务调度和通道选择,后台线程负责通道检测和通道维护。两个线程各自聚焦自己的领域,大大提升运行效率,并且相互之间无感知且不受影响。
2) 通道池拆分:将传统的通道池拆分成了第一通道池和第二通道池,其中第一通道池存放着高概率正常的连接通道,也即是上述可用通信通道,是前台线程进行业务调度选择通道的首要目标。第二通道池存放连接出现问题但近期还有几率使用的连接通道,也即是上述异常通信通道,是后台线程进行通道检测和通道修复的首要目标。
3) 图2是根据本发明实施方式的前台线程处理的示意图,如图2所示,前台线程工作流程:前台线程主要由业务系统唤醒,当有业务调度需求时,前台线程开始工作。首先前台线程先查询出该业务的所有连接信息,并尝试在第一通道池里面寻找相关连接通道,也即是上述目标通信通道,若未找到任何通道,则尝试建立一个放入第一通道池中。若找到的通道不可用或新通道建立失败,则把失败信息放入第二通道池里,继续在第一通道池中寻找或者创建其他通信通道,直到通道可用,业务调度完毕。再把该业务需要用到但不在第一通道池中的连接信息都放入第二通道池中,供后台线程进行通道建立。
4) 图3是根据本发明实施方式的后台线程处理的示意图,如图3所示,后台线程工作流程:后台线程主要由定时任务系统唤醒,间隔固定时间后台线程开始工作。首先后台线程先检测第一通道池里面的所有连接通道,回收关闭长时间没用到连接通道,保证通道池循环利用。其次依次检测第一通道池里面所有通道的连接状态,把连接有问题的通道放入第二通道池中。最后再依次重新建立第二通道池的连接,建立成功则重新放入第一通道池中,以供前台线程进行通道选择,失败则直接抛弃。
本实施方式的关键点在于将通道池拆分成了第一通道池和第二通道池,其中第一通道池存放着高概率正常的通信通道,供前台线程进行业务调度。第二通道池存放连接出现问题但近期还有几率使用的通信通道,供后台线程进行连接修复。
本实施方式将工作线程拆分成前台线程和后台线程,前台线程负责业务调度和通道选择,后台线程负责通道检测和通道维护。两个线程各自聚焦自己的领域,并且相互之间无感知,不受影响。
本实施方式抛弃了传统系统首次连接要建立多个通信通道的策略,改为只建立一个供本次业务调度使用,其他的放入第二通道池中,等待后台线程后续开启,使得首次连接效率更高,并且效率稳定,不会受到连接通道总数的影响。
本实施方式通过通道缓启动策略,首次连接的效率高,速度快。抛弃了传统系统首次连接要建立多个通信通道的策略,改为只建立一个供本次业务调度使用,其他的先放入第二通道池中,等待后台线程后续开启,速度更快,效率更高。并且整体效率稳定,不会受到连接通道总数的影响。
本实施方式设立第一通道池和第二通道池,通道选择时成功率更高。因为本实施方式不再使用传统的轮询或者随机实施方式选择连接通道,而是先尝试在第一通道池中寻找连接通道,一旦使用过程中发现通道有问题则会放入第二通道池中,避免下次再选到它。这种机制下,业务命中可用通道的概率将远大于传统的轮询或者随机选取实施方式。效率更高,高可用切换的负担更小。
本实施方式进行双线程工作,各自更加聚焦各自领域,效率更高 因为本实施方式将线程拆分成前台线程和后台线程,前台线程只聚焦业务调度和通道选择,无需关注通道的回收释放和断线重连,使得业务调度的负担更小,速度更快。后台线程只聚焦通道回收和断线重连,没有业务调度的时间压力,可以加入更多的重试和检测策略保证通道的稳定性。并且双线程各自工作,相互无感知且不受影响,方便后续的扩展。
图4是根据本发明实施例的一种数据通信装置的示意图,如图4所示,根据本发明实施例的另一方面,还提供了一种数据通信装置,包括:前台模块42,通信模块44和后台模块46,下面对该装置进行详细说明。
前台模块42,前台模块,用于响应通信业务的唤醒操作,调用前台线程在第一通道池中确定目标通信通道,其中,第一通道池用于存储可用通信通道;通信模块44,与上述前台模块42相连,用于采用目标通信通道进行数据通信;后台模块46,与上述通信模块44相连,用于定时调用后台线程对第二通道池中的异常通信通道进行维护,其中,第二通道池用于存储通信异常的通信通道,第二通道池与第一通道池相互独立,前台线程和后台线程相互独立,第一通道池的通信通道的使用频率高于第二通道池的通信通道的使用频率。
通过上述装置,采用响应通信业务的唤醒操作,调用前台线程在第一通道池中确定目标通信通道,其中,第一通道池用于存储可用通信通道;采用目标通信通道进行数据通信;定时调用后台线程对第二通道池中的异常通信通道进行维护,其中,第二通道池用于存储通信异常的通信通道,第二通道池与第一通道池相互独立,前台线程和后台线程相互独立,第一通道池的通信通道的使用频率高于第二通道池的通信通道的使用频率。通过将线程拆分为前台线程与后台线程,前台线程,负责业务调度和通道选择,达到了提高业务命中可用通道概率的目的;后台线程,负责通道检测和通道维护,达到了提高通道的稳定性的目的,从而实现了高性能切换通信通道的技术效果,进而解决了相关技术中的多个通信通道在切换时采用单线程运行的方式存在效率低下的技术问题。
根据本发明实施例的另一方面,还提供了一种处理器,处理器用于运行程序,其中,程序运行时执行上述中任意一项的数据处理方法。
根据本发明实施例的另一方面,还提供了一种计算机存储介质,计算机存储介质包括存储的程序,其中,在程序运行时控制计算机存储介质所在设备执行上述中任意一项的数据处理方法。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种数据通信方法,其特征在于,包括:
响应通信业务的唤醒操作,调用前台线程在第一通道池中确定目标通信通道,其中,所述第一通道池用于存储可用通信通道;
采用所述目标通信通道进行数据通信;
定时调用后台线程对第二通道池中的异常通信通道进行维护,其中,所述第二通道池用于存储通信异常的通信通道,所述第二通道池与所述第一通道池相互独立,所述前台线程和所述后台线程相互独立,所述第一通道池的通信通道的使用频率高于所述第二通道池的通信通道的使用频率。
2.根据权利要求1所述的方法,其特征在于,响应通信业务的唤醒操作,调用前台线程在第一通道池中确定目标通信通道包括:
响应所述通信业务的唤醒操作,调用并开启所述前台线程;
通过所述前台线程在所述第一通道池中查找所述通信业务对应的目标通信通道;
在所述第一通道池中没有查找到目标通信通道的情况下,通过所述前台线程创建所述通信业务的目标通信通道。
3.根据权利要求2所述的方法,其特征在于,通过所述前台线程在所述第一通道池中查找所述通信业务对应的目标通信通道包括:
通过所述前台线程查询所述通信业务的连接信息;
根据所述连接信息在所述第一通道池中查找所述连接信息对应的目标通信通道。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
在所述第一通道池中没有查找到目标通信通道的情况下,将查找过的不可用的通信通道放入所述第二通道池中;
在通过所述前台线程创建所述通信业务的通信通道不可用的情况下,将创建的不可用的通信通道放入所述第二通道池中;
重新查找或创建目标通信通道,直至查找到所述目标通信通道,或者创建所述目标通信通道。
5.根据权利要求1所述的方法,其特征在于,定时调用后台线程对第二通道池中的异常通信通道进行维护包括:
响应预设的定时任务的唤醒操作,调用并开启所述后台线程;
通过所述后台线程检测所述第二通道池中的异常通信通道的关闭时长是否达到预设时长;
在所述关闭时长达到预设时长的情况下,对所述异常通信通道进行回收。
6.根据权利要求4所述的方法,其特征在于,所述方法还包括:
通过所述后台线程检测所述第一通道池中的可用通信通道的连接状态是否异常;
在检测到所述可用通信通道的连接状态异常的情况下,将所述可用通信通道更新为异常通信通道,并存入所述第二通道池中;
对所述第二通道池中的异常通信通道按照预设顺序进行依次重建,将重建成功的异常通信通道更新为可用通信通道,并存入所述第一通道池中。
7.根据权利要求1至6中任一项所述的方法,其特征在于,响应通信业务的唤醒操作,调用前台线程在第一通道池中确定目标通信通道之前,还包括:
创建所述前台线程和所述后台线程并行的双线程工作模式,并定义所述前台线程用于业务调度和通信选择,定义所述后台线程用于通道检测和通道维护;
将通道池拆分为互相独立的第一通道池和第二通道池。
8.一种数据通信装置,其特征在于,包括:
前台模块,用于响应通信业务的唤醒操作,调用前台线程在第一通道池中确定目标通信通道,其中,所述第一通道池用于存储可用通信通道;
通信模块,用于采用所述目标通信通道进行数据通信;
后台模块,用于定时调用后台线程对第二通道池中的异常通信通道进行维护,其中,所述第二通道池用于存储通信异常的通信通道,所述第二通道池与所述第一通道池相互独立,所述前台线程和所述后台线程相互独立,所述第一通道池的通信通道的使用频率高于所述第二通道池的通信通道的使用频率。
9.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至7中任意一项所述的数据通信方法。
10.一种计算机存储介质,其特征在于,所述计算机存储介质包括存储的程序,其中,在所述程序运行时控制所述计算机存储介质所在设备执行权利要求1至7中任意一项所述的数据通信方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111189826.3A CN113626226B (zh) | 2021-10-13 | 2021-10-13 | 数据通信方法及装置、处理器、计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111189826.3A CN113626226B (zh) | 2021-10-13 | 2021-10-13 | 数据通信方法及装置、处理器、计算机存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113626226A true CN113626226A (zh) | 2021-11-09 |
CN113626226B CN113626226B (zh) | 2022-02-22 |
Family
ID=78391254
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111189826.3A Active CN113626226B (zh) | 2021-10-13 | 2021-10-13 | 数据通信方法及装置、处理器、计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113626226B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113923222A (zh) * | 2021-12-13 | 2022-01-11 | 云和恩墨(北京)信息技术有限公司 | 数据处理方法及装置 |
CN117707743A (zh) * | 2024-02-05 | 2024-03-15 | 天津凯发电气股份有限公司 | 一种智慧车站能源管控系统任务执行方法、装置及设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070097912A1 (en) * | 2005-11-03 | 2007-05-03 | Dean Kawaguchi | Method and system for managing multi-channel communication |
CN105592551A (zh) * | 2015-08-10 | 2016-05-18 | 杭州华三通信技术有限公司 | 一种信道分配方法及装置 |
CN110515706A (zh) * | 2019-08-16 | 2019-11-29 | 苏州浪潮智能科技有限公司 | 一种请求处理方法、装置、设备及可读存储介质 |
CN112153060A (zh) * | 2020-09-27 | 2020-12-29 | 苏州浪潮智能科技有限公司 | Smb协议服务器的通信控制方法、系统及相关组件 |
CN112181677A (zh) * | 2020-09-02 | 2021-01-05 | 珠海格力电器股份有限公司 | 业务的处理方法和装置、存储介质、电子装置 |
-
2021
- 2021-10-13 CN CN202111189826.3A patent/CN113626226B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070097912A1 (en) * | 2005-11-03 | 2007-05-03 | Dean Kawaguchi | Method and system for managing multi-channel communication |
CN105592551A (zh) * | 2015-08-10 | 2016-05-18 | 杭州华三通信技术有限公司 | 一种信道分配方法及装置 |
CN110515706A (zh) * | 2019-08-16 | 2019-11-29 | 苏州浪潮智能科技有限公司 | 一种请求处理方法、装置、设备及可读存储介质 |
CN112181677A (zh) * | 2020-09-02 | 2021-01-05 | 珠海格力电器股份有限公司 | 业务的处理方法和装置、存储介质、电子装置 |
CN112153060A (zh) * | 2020-09-27 | 2020-12-29 | 苏州浪潮智能科技有限公司 | Smb协议服务器的通信控制方法、系统及相关组件 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113923222A (zh) * | 2021-12-13 | 2022-01-11 | 云和恩墨(北京)信息技术有限公司 | 数据处理方法及装置 |
CN117707743A (zh) * | 2024-02-05 | 2024-03-15 | 天津凯发电气股份有限公司 | 一种智慧车站能源管控系统任务执行方法、装置及设备 |
CN117707743B (zh) * | 2024-02-05 | 2024-05-14 | 天津凯发电气股份有限公司 | 一种智慧车站能源管控系统任务执行方法、装置及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN113626226B (zh) | 2022-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113626226B (zh) | 数据通信方法及装置、处理器、计算机存储介质 | |
CN106911728B (zh) | 分布式系统中主节点的选取方法和装置 | |
CN109831500B (zh) | Kubernetes集群中配置文件与Pod的同步方法 | |
CN105426439B (zh) | 一种元数据的处理方法和装置 | |
CN107919977B (zh) | 一种基于Paxos协议的在线扩容、在线缩容的方法和装置 | |
US20140089259A1 (en) | Operation method and apparatus for data storage system | |
CN108847982A (zh) | 一种分布式存储集群及其节点故障切换方法和装置 | |
CN103346898B (zh) | 热拔插板卡配置信息处理的方法和网络通信设备 | |
CN102394914A (zh) | 集群脑裂处理方法和装置 | |
CN109582686B (zh) | 分布式元数据管理一致性保证方法、装置、系统及应用 | |
CN103106196A (zh) | 一种恢复浏览器网页的方法和装置 | |
CN109144787A (zh) | 一种数据恢复方法、装置、设备及可读存储介质 | |
CN110391940A (zh) | 服务地址的响应方法、装置、系统、设备和存储介质 | |
CN111666266A (zh) | 一种数据迁移方法及相关设备 | |
CN112000437A (zh) | 一种灾备方法、装置、电子设备及存储介质 | |
CN103262470B (zh) | FCoE网络链接管理方法、设备和系统 | |
CN103596229B (zh) | 小区重选方法及移动终端 | |
CN109474694A (zh) | 一种基于san存储阵列的nas集群的管控方法及装置 | |
CN110569231B (zh) | 数据迁移方法、装置、设备和介质 | |
CN113472566A (zh) | 一种联盟区块链的状态监控方法及主节点状态监控系统 | |
CN113064768B (zh) | 在区块链系统中切换分片节点的方法和装置 | |
WO2021098268A1 (zh) | 一种mon服务迁移方法、装置、设备及可读存储介质 | |
CN110191026B (zh) | 一种分布式业务链路监控方法及装置 | |
CN113190546A (zh) | 一种Eureka服务管控方法、系统及可读存储介质 | |
CN113342851A (zh) | 序列扩容方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |