CN110048892A - 通讯平台故障隔离方法及系统 - Google Patents
通讯平台故障隔离方法及系统 Download PDFInfo
- Publication number
- CN110048892A CN110048892A CN201910324379.4A CN201910324379A CN110048892A CN 110048892 A CN110048892 A CN 110048892A CN 201910324379 A CN201910324379 A CN 201910324379A CN 110048892 A CN110048892 A CN 110048892A
- Authority
- CN
- China
- Prior art keywords
- message
- module
- channel
- thread
- queue
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
- H04L41/0659—Management of faults, events, alarms or notifications using network fault recovery by isolating or reconfiguring faulty entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/16—Threshold monitoring
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/21—Monitoring or handling of messages
- H04L51/214—Monitoring or handling of messages using selective forwarding
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Maintenance And Management Of Digital Transmission (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明公开了一种通讯平台故障隔离方法及系统,所述通讯平台故障隔离方法包括:生成消息发送请求并送入消息队列;从消息队列拉取消息发送请求,选择消息发送通道进行发送;判断消息发送通道是否发生发送故障,若是则开启一与消息发送通道相对应的隔离通道线程池,使用隔离通道线程池中的线程进行消息发送。本发明通过消息发送故障发生时设立的故障隔离模块,将发生故障的消息发送请求放入隔离通道线程池中处理,同时故障隔离检测模块实时监控各通道的故障发生和恢复情况,避免了慢响应速度的通道阻塞通讯的情况。本发明提供了通讯平台统一故障隔离及自动恢复的解决方案,保障了各通道信息发送的独立性,保障了各类消息的高达到率。
Description
技术领域
本发明涉及网络通讯平台领域,特别涉及一种通讯平台故障隔离方法及系统。
背景技术
网络通讯平台的消息发送面临用户众多、消息量大且并发量高的情况,而实际的消息发送接口能够提供的发送能力有限。一般消息推送时使用消息队列解耦是常用的解决方案,消息队列作为在客户端(消费者,Consumer)与服务(生产者,Producer)之间引入的中间层,可以有效地解除二者之间的耦合;只要实现规定双方需要通信的消息格式,以及处理消息的机制与时机,就可以有效地实现消息的异步处理、在高并发场景下平滑短时间内大量的服务请求等。一个队列有固定线程数的消费者,每个消费者同步调用API(应用程序编程接口),API的实现会根据参数选择一种下游通道来发送,每个通道的网络状态等都可能不同,异常情况下某个通道会特别的慢,所以如果消费者使用该参数的API多的话,就会导致消费能力直线下降。此时消息队列就会因为慢响应速度的通道而阻塞,从而导致其他正常响应速度的通道无法被调用。
发明内容
本发明要解决的技术问题是为了克服现有技术中的消息队列会因为慢响应速度的通道而阻塞,从而导致其他正常响应速度的通道无法被调用的缺陷,提供一种通讯平台故障隔离方法及系统。
本发明是通过下述技术方案来解决上述技术问题:
本发明提供一种通讯平台故障隔离方法,所述通讯平台故障隔离方法包括:
S1、生成消息发送请求并送入消息队列;
S2、从所述消息队列拉取所述消息发送请求,选择消息发送通道进行发送;
S3、判断所述消息发送通道是否发生发送故障,若是则开启一与所述消息发送通道相对应的隔离通道线程池,执行步骤S4;
S4、使用所述隔离通道线程池中的线程进行消息发送。
较佳地,步骤S3中判断所述消息发送通道是否发生发送故障,包括:
S301、所述消息发送通道的主线程调用API,将所述消息发送请求下发至SOA模块;
S302、判断API调用结果是否成功,若成功则返回步骤S2继续执行;若失败则执行步骤S303;
S303、判断所述API调用结果的失败原因是否是超时失败,若是则判定所述消息发送通道发生发送故障;若否则将所述消息发送请求发送回所述消息队列,返回步骤S2继续执行。
较佳地,步骤S3中所述开启一与所述消息发送通道相对应的隔离通道线程池之前,还包括:
建立一与所述消息发送通道相对应的本地消息队列;
将所述消息发送请求发送至所述本地消息队列;
步骤S4中具体包括:使用所述隔离通道线程池中的线程从所述本地消息队列中拉取所述消息发送请求进行消息发送。
较佳地,步骤S3中所述开启一与所述消息发送通道相对应的隔离通道线程池之前,还包括:
设置一与所述消息发送通道相对应的故障通道标志,所述故障通道标志置位;
设置一与所述消息发送通道相对应的计数器,所述计数器的初值为零;
步骤S4中使用所述隔离通道线程池中的线程进行消息发送包括:
S401、从所述本地消息队列拉取消息发送请求;
S402、从所述隔离通道线程池获取隔离通道线程池线程;
S403、判断是否成功获取隔离通道线程池线程,若是则执行步骤S404;若否则发送警示信息,并将所述消息发送请求发送回所述本地消息队列;
S404、所述隔离通道线程池线程调用API,将所述消息发送请求下发至SOA模块;
S405、判断API调用结果是否成功,若成功则执行步骤S407;若失败则执行步骤S406;
S406、判断所述API调用结果的失败原因是否是超时失败,若是则返回至步骤S401执行;若否则将所述消息发送请求发送回所述本地消息队列,返回至步骤S401执行;
S407、所述计数器的计数值加1;
S408、判断所述计数器的计数值是否等于取消故障阈值,若是则执行步骤S409,若否则执行步骤S410;
S409、所述故障通道标志复位;
S410、判断所述本地消息队列是否已为空,若否则返回至步骤S401继续执行;若是则所述计数器的计数值清零,返回至步骤S2继续执行。
较佳地,所述隔离通道线程池还包括内存队列,所述隔离通道线程池预设一线程阈值,若所述隔离通道线程池中的线程数量达到所述线程阈值,则将线程加入所述内存队列中;所述内存队列也预设一队列阈值,若所述内存队列的数量达到所述队列阈值,则将所述消息发送请求发送回所述消息队列。
本发明还提供一种通讯平台故障隔离系统,所述通讯平台故障隔离系统包括:消息生成模块、消息消费模块、故障隔离检测模块、故障隔离模块;
所述消息生成模块生成消息发送请求送入消息队列;
所述消息消费模块从所述消息队列拉取所述消息发送请求,选择消息发送通道进行消息发送;
所述故障隔离检测模块检测到所述消息发送通道发生发送故障,则将所述消息发送通道放入故障隔离模块,开启一与所述消息发送通道相对应的隔离通道线程池;
所述故障隔离模块利用所述隔离通道线程池进行消息发送。
较佳地,所述故障隔离检测模块包括消息发送模块、第一判断模块和第二判断模块;
所述消息发送模块调用API,将所述消息发送请求下发至SOA(面向服务的架构)模块进行发送;
所述第一判断模块判断API调用结果是否成功,若失败则调用所述第二判断模块判断所述API调用结果的失败原因,若成功则继续执行所述拉取消息发送请求;
所述第二判断模块判断所述API调用结果的失败原因是否是超时失败,若是则判定所述消息发送通道发生发送故障;若否则将所述消息发送请求发送回消息队列,继续执行所述拉取消息发送请求。
较佳地,所述故障隔离模块还包括建立单元;
所述建立单元用于建立一本地消息队列,所述本地消息队列用于存储所述消息发送请求,所述故障隔离模块利用所述隔离通道线程池中的线程从所述本地消息队列中拉取所述消息发送请求进行消息发送。
较佳地,所述故障隔离模块还包括设置单元、计数器、故障通道消息发送模块、线程获取模块、第三判断模块、第四判断模块和第五判断模块。
所述设置单元用于设置一故障通道标志,所述故障通道标志用于标示所述消息发送通道是否发生发送故障;
所述计数器用于记录所述消息发送通道成功发送所述消息发送请求的次数,当所述计数器的计数值达到取消故障阈值时,所述故障通道标志复位;
所述线程获取模块从所述本地消息队列拉取消息发送请求,再从所述隔离通道线程池获取隔离通道线程池线程,若获取失败,则发送警示信息,并将所述消息发送请求发送回本地消息队列;若获取成功则调用所述故障通道消息发送模块进行消息发送;
所述故障通道消息发送模块调用API,将所述消息发送请求下发至SOA模块进行发送;
所述第三判断模块判断API调用结果是否成功,若失败则调用所述第四判断模块判断所述API调用结果的失败原因;若成功则所述计数器的计数值加1,判断所述计数器的计数值是否等于取消故障阈值,若是则所述故障通道标志复位,若否则所述故障通道标志保持置位,调用所述第五判断模块进行所述本地消息队列的长度判断;
所述第四判断模块判断所述API调用结果的失败原因是否是超时失败,若是则调用所述线程获取模块继续获取线程;若否则将所述消息发送请求发送回所述本地消息队列,调用所述线程获取模块继续获取线程;
所述第五判断模块判断所述本地消息队列是否已为空,若否则调用所述线程获取模块继续获取线程;若是则所述计数器的计数值清零,继续执行所述拉取消息发送请求。
较佳地,所述隔离通道线程池还包括内存队列,所述隔离通道线程池预设一线程阈值,若所述隔离通道线程池中的线程数量达到所述线程阈值,则将线程加入所述内存队列中;所述内存队列也预设一队列阈值,若所述内存队列的数量达到所述队列阈值,则将所述消息发送请求发送回消息队列。
在符合本领域常识的基础上,上述各优选条件,可任意组合,即得本发明各较佳实例。
本发明的积极进步效果在于:通过消息发送故障发生时设立的故障隔离模块,将发生故障的消息发送请求放入隔离通道线程池中处理,主线程继续处理消息队列中的消息,并在故障恢复后取消故障隔离模块,同时故障隔离检测模块实时监控各通道的故障发生和恢复情况,避免了慢响应速度的通道阻塞通讯的情况。通过故障隔离模块和故障隔离检测模块,提供了通讯平台统一故障隔离及自动恢复的解决方案;通过隔离故障通道,保障了通讯平台各通道信息发送的独立性;通过重试机制,保障了通讯平台各类消息的高达到率。
附图说明
图1为本发明实施例1的通讯平台故障隔离方法的流程示意图。
图2为本发明实施例2通讯平台故障隔离系统的系统结构示意图。
图3为本发明实施例2通讯平台故障隔离系统的故障隔离检测模块的结构示意图。
图4为本发明实施例2通讯平台故障隔离系统的故障隔离模块的结构示意图。
具体实施方式
下面通过实施例的方式并结合附图来更清楚完整地说明本发明,但并不因此将本发明限制在所述的实施例范围之中。
实施例1
本实施例提供一种通讯平台故障隔离方法,如图1所示,所述通讯平台故障隔离方法包括:
步骤S1、生成消息发送请求并送入消息队列;
步骤S2、从所述消息队列拉取所述消息发送请求,选择消息发送通道进行发送;
所述消息发送请求中包含需要使用的消息发送通道参数,可以根据该参数选择相应的消息发送通道来进行消息发送。
步骤S3、判断所述消息发送通道是否发生发送故障,若是则开启一与所述消息发送通道相对应的隔离通道线程池,执行步骤S4。步骤S3包括:
步骤S301、所述消息发送通道的主线程调用API,将所述消息发送请求下发至SOA模块;
所述消息发送通道的主线程同步调用API,将所述消息发送请求下发至SOA模块进行消息发送。SOA模块执行短信发送的功能,它与短信供应商维持长连接,并将请求路由传递到短信供应商。
步骤S302、判断API调用结果是否成功,若成功则返回步骤S2继续执行;若失败则执行步骤S303;
每个消息发送通道的网络状态等可能不同,异常情况下某个通道会特别的慢,导致API调用失败,此时需要根据API调用返回的错误码进行不同处理。
步骤S303、判断所述API调用结果的失败原因是否是超时失败,若是则判定所述消息发送通道发生发送故障;若否则将所述消息发送请求发送回所述消息队列,返回步骤S2继续执行。
当API调用结果的错误码为Timeout(超时)异常时,API调用结果的失败原因即是超时失败,发生超时失败即判定该消息发送通道发生发送故障;若是其它类型异常将该消息发送请求发送回消息队列等待一段时间后再拉取进行重试。消息发送通道发生发送故障时将异常的消息发送请求使用该通道的隔离通道线程池去发送,这样该通道依然保持对消息队列的正常消费能力。
本实施例中,步骤S3中所述开启一与所述消息发送通道相对应的隔离通道线程池之前,还包括:
建立一与所述消息发送通道相对应的本地消息队列;
将所述消息发送请求发送至所述本地消息队列;
设置一与所述消息发送通道相对应的故障通道标志,所述故障通道标志置位表示该通道发生了发送故障,所述故障通道标志复位表示该通道的发送故障已消除;此时所述故障通道标志置位;
设置一与所述消息发送通道相对应的计数器,此时所述计数器的初值为零。
步骤S4、使用所述隔离通道线程池中的线程进行消息发送包括:
步骤S401、从所述本地消息队列拉取消息发送请求;
步骤S402、从所述隔离通道线程池获取隔离通道线程池线程;
步骤S403、判断是否成功获取隔离通道线程池线程,若是则执行步骤S404;若否则发送警示信息,并将所述消息发送请求发送回所述本地消息队列;
每个故障隔离的通道都有一个专属隔离通道线程池,成功获取隔离通道线程池线程即可进行后续消息发送,获取失败则代表该通道存在其他问题,需要管理员加以关注。
步骤S404、所述隔离通道线程池线程调用API,将所述消息发送请求下发至SOA模块;
步骤S405、判断API调用结果是否成功,若成功则执行步骤S407;若失败则执行步骤S406;
步骤S406、判断所述API调用结果的失败原因是否是超时失败,若是则返回至步骤S401执行;若否则将所述消息发送请求发送回所述本地消息队列,返回至步骤S401执行;
隔离通道线程池中的线程进行消息发送与上述消息发送通道的主线程进行消息发送基本类似。调用API,将消息发送请求下发至SOA模块进行发送,根据API调用结果进行不同处理。API调用成功则执行步骤S407;失败则继续判断调用返回的结果码,当结果码为timeout时,判定API调用失败的原因为超时失败,继续执行步骤S401;当结果码为其他类型时,将该消息发送请求发送回本地消息队列,继续执行步骤S401。
步骤S407、所述计数器的计数值加1;
步骤S408、判断所述计数器的计数值是否等于取消故障阈值,若是则执行步骤S409,若否则执行步骤S410;
步骤S409、所述故障通道标志复位;
隔离通道线程池中的线程执行消息发送返回成功即将该通道的计数器的计数值加1,当计数值小于取消故障阈值时,直接执行步骤S410;当计数值等于取消故障阈值时,代表该通道已恢复正常,可以取消该通道的故障隔离状态了,即复位该通道的故障通道标志,然后执行步骤S410。
步骤S410、判断所述本地消息队列是否已为空,若否则返回至步骤S401继续执行;若是则所述计数器的计数值清零,返回至步骤S2继续执行。
当故障通道的本地消息队列内还有消息发送请求时,继续使用其隔离通道线程池中的线程进行消息发送;当本地消息队列为空了,该通道已处理完毕所有异常的消息发送请求,将该通道的计数器清零,返回至步骤S2执行从消息队列中拉取消息。
本实施例中,所述隔离通道线程池还包括内存队列,所述隔离通道线程池预设一线程阈值,当其中的线程数量达到线程阈值时,则将线程加入内存队列中;所述内存队列也预设一队列阈值,当内存队列的数量达到队列阈值时,则将所述消息发送请求发送回消息队列,等待一段时间后再重试。
本实施例通过消息发送故障发生时在消息发送通道下设立的隔离通道线程池,将发生故障的消息发送请求放入隔离通道线程池中处理,主线程继续处理消息队列中的消息,并在故障恢复后取消故障隔离状态,避免了慢响应速度的通道阻塞通讯的情况,提供了通讯平台统一故障隔离及自动恢复的解决方案;通过重试机制,保障了通讯平台各类消息的高达到率。
实施例2
本实施例提供一种通讯平台故障隔离系统,如图2所示所述通讯平台故障隔离系统包括:消息生成模块1、消息消费模块2、故障隔离检测模块3、故障隔离模块4;
所述消息生成模块1生成消息发送请求送入消息队列;
所述消息消费模块2从所述消息队列拉取所述消息发送请求,选择消息发送通道进行消息发送;
所述故障隔离检测模块3检测到所述消息发送通道发生发送故障,则将所述消息发送请求放入故障隔离模块4,开启一与所述消息发送通道相对应的隔离通道线程池;
每个消息发送通道的网络状态等可能不同,异常情况下某个通道会特别的慢,此时即可判定该消息发送通道发生了发送故障。此时对该消息发送通道进行故障隔离,将异常的消息发送请求放入该通道的故障隔离模块4,并开启一个与所述消息发送通道相对应的隔离通道线程池,使用隔离通道线程池去发送异常的消息发送请求,这样该通道依然保持对消息队列的正常消费能力。
所述故障隔离模块4利用所述隔离通道线程池进行消息发送。
本实施例中,如图3所示,所述故障隔离检测模块3包括消息发送模块301、第一判断模块302和第二判断模块303;
所述消息发送模块301调用API,将所述消息发送请求下发至SOA模块进行发送;
所述第一判断模块302判断API调用结果是否成功,若失败则调用所述第二判断模块303判断所述API调用结果的失败原因,若成功则继续执行从消息队列中拉取消息发送请求;
所述第二判断模块303判断所述API调用结果的失败原因是否是超时失败,若是则判定所述消息发送通道发生发送故障;若否则将所述消息发送请求发送回消息队列,继续执行从消息队列里拉取消息发送请求。
本实施例中,如图4所示,所述故障隔离模块4包括建立单元401、设置单元402、计数器403、线程获取模块404、故障通道消息发送模块405、第三判断模块406、第四判断模块407和第五判断模块408;
所述建立单元401用于建立一本地消息队列,所述本地消息队列用于存储所述消息发送请求,所述故障隔离模块4利用所述隔离通道线程池中的线程从所述本地消息队列中拉取所述消息发送请求进行消息发送。
所述设置单元402用于设置一故障通道标志,所述故障通道标志用于标示所述消息发送通道是否发生发送故障;当所述消息发送通道发生发送故障时,所述故障通道标志置位;当所述消息发送通道的发送故障消除时,所述故障通道标志复位;
所述计数器403用于记录所述消息发送通道成功发送所述消息发送请求的次数,当所述计数器403的计数值达到取消故障阈值时,所述故障通道标志复位;
所述线程获取模块404从所述本地消息队列拉取消息发送请求,再从所述隔离通道线程池获取隔离通道线程池线程,若获取失败,则发送警示信息,并将所述消息发送请求发送回本地消息队列;若获取成功则调用所述故障通道消息发送模块405进行消息发送;
所述故障通道消息发送模块405调用API,将所述消息发送请求下发至SOA模块进行发送;
所述第三判断模块406判断API调用结果是否成功,若失败则调用所述第四判断模块407判断所述API调用结果的失败原因;若成功则所述计数器403的计数值加1,判断所述计数器403的计数值是否等于取消故障阈值,若是则所述故障通道标志复位,若否则所述故障通道标志保持置位,调用所述第五判断模块408进行所述本地消息队列的长度判断;
所述第四判断模块407判断所述API调用结果的失败原因是否是超时失败,若是则调用所述线程获取模块404继续获取线程;若否则将所述消息发送请求发送回所述本地消息队列,调用所述线程获取模块404继续获取线程;
所述第五判断模块408判断所述本地消息队列是否已为空,若否则调用所述线程获取模块404继续获取线程;若是则所述计数器403的计数值清零,继续执行从消息队列中拉取消息发送请求。
本实施例中,所述隔离通道线程池还包括内存队列,所述隔离通道线程池预设一线程阈值,若所述隔离通道线程池中的线程数量达到所述线程阈值,则将线程加入所述内存队列中;所述内存队列也预设一队列阈值,若所述内存队列的数量达到所述队列阈值,则将所述消息发送请求发送回消息队列。
本实施例通过消息发送通道发生发送故障时设立的故障隔离模块,将发生故障的消息发送请求放入隔离通道线程池中处理,主线程继续处理消息队列中的消息,并在故障恢复后取消故障隔离模块,同时故障隔离检测模块实时监控各通道的故障发生和恢复情况,避免了慢响应速度的通道阻塞通讯的情况。通过故障隔离模块和故障隔离检测模块,提供了通讯平台统一故障隔离及自动恢复的解决方案;通过隔离故障通道,保障了通讯平台各通道信息发送的独立性;通过重试机制,保障了通讯平台各类消息的高达到率。
虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。
Claims (10)
1.一种通讯平台故障隔离方法,其特征在于,所述通讯平台故障隔离方法包括:
S1、生成消息发送请求并送入消息队列;
S2、从所述消息队列拉取所述消息发送请求,选择消息发送通道进行发送;
S3、判断所述消息发送通道是否发生发送故障,若是则开启一与所述消息发送通道相对应的隔离通道线程池,执行步骤S4;
S4、使用所述隔离通道线程池中的线程进行消息发送。
2.如权利要求1所述的通讯平台故障隔离方法,其特征在于,步骤S3中判断所述消息发送通道是否发生发送故障,包括:
S301、所述消息发送通道的主线程调用API,将所述消息发送请求下发至SOA模块;
S302、判断API调用结果是否成功,若成功则返回步骤S2继续执行;若失败则执行步骤S303;
S303、判断所述API调用结果的失败原因是否是超时失败,若是则判定所述消息发送通道发生发送故障;若否则将所述消息发送请求发送回所述消息队列,返回步骤S2继续执行。
3.如权利要求1所述的通讯平台故障隔离方法,其特征在于,步骤S3中所述开启一与所述消息发送通道相对应的隔离通道线程池之前,还包括:
建立一与所述消息发送通道相对应的本地消息队列;
将所述消息发送请求发送至所述本地消息队列;
步骤S4中具体包括:使用所述隔离通道线程池中的线程从所述本地消息队列中拉取所述消息发送请求进行消息发送。
4.如权利要求3所述的通讯平台故障隔离方法,其特征在于,步骤S3中所述开启一与所述消息发送通道相对应的隔离通道线程池之前,还包括:
设置一与所述消息发送通道相对应的故障通道标志,所述故障通道标志置位;
设置一与所述消息发送通道相对应的计数器,所述计数器的初值为零;
步骤S4中使用所述隔离通道线程池中的线程进行消息发送包括:
S401、从所述本地消息队列拉取消息发送请求;
S402、从所述隔离通道线程池获取隔离通道线程池线程;
S403、判断是否成功获取隔离通道线程池线程,若是则执行步骤S404;若否则发送警示信息,并将所述消息发送请求发送回所述本地消息队列;
S404、所述隔离通道线程池线程调用API,将所述消息发送请求下发至SOA模块;
S405、判断API调用结果是否成功,若成功则执行步骤S407;若失败则执行步骤S406;
S406、判断所述API调用结果的失败原因是否是超时失败,若是则返回至步骤S401执行;若否则将所述消息发送请求发送回所述本地消息队列,返回至步骤S401执行;
S407、所述计数器的计数值加1;
S408、判断所述计数器的计数值是否等于取消故障阈值,若是则执行步骤S409,若否则执行步骤S410;
S409、所述故障通道标志复位;
S410、判断所述本地消息队列是否已为空,若否则返回至步骤S401继续执行;若是则所述计数器的计数值清零,返回至步骤S2继续执行。
5.如权利要求1至4中任一项所述的通讯平台故障隔离方法,其特征在于,所述隔离通道线程池还包括内存队列,所述隔离通道线程池预设一线程阈值,若所述隔离通道线程池中的线程数量达到所述线程阈值,则将线程加入所述内存队列中;所述内存队列也预设一队列阈值,若所述内存队列的数量达到所述队列阈值,则将所述消息发送请求发送回所述消息队列。
6.一种通讯平台故障隔离系统,其特征在于,所述通讯平台故障隔离系统包括:消息生成模块、消息消费模块、故障隔离检测模块、故障隔离模块;
所述消息生成模块生成消息发送请求送入消息队列;
所述消息消费模块从所述消息队列拉取所述消息发送请求,选择消息发送通道进行消息发送;
所述故障隔离检测模块检测到所述消息发送通道发生发送故障,则将所述消息发送通道放入故障隔离模块,开启一与所述消息发送通道相对应的隔离通道线程池;
所述故障隔离模块利用所述隔离通道线程池进行消息发送。
7.如权利要求6所述的通讯平台故障隔离系统,其特征在于,所述故障隔离检测模块包括消息发送模块、第一判断模块和第二判断模块;
所述消息发送模块调用API,将所述消息发送请求下发至SOA模块进行发送;
所述第一判断模块判断API调用结果是否成功,若失败则调用所述第二判断模块判断所述API调用结果的失败原因,若成功则继续执行所述拉取消息发送请求;
所述第二判断模块判断所述API调用结果的失败原因是否是超时失败,若是则判定所述消息发送通道发生发送故障;若否则将所述消息发送请求发送回消息队列,继续执行所述拉取消息发送请求。
8.如权利要求6所述的通讯平台故障隔离系统,其特征在于,所述故障隔离模块还包括建立单元;
所述建立单元用于建立一本地消息队列,所述本地消息队列用于存储所述消息发送请求,所述故障隔离模块利用所述隔离通道线程池中的线程从所述本地消息队列中拉取所述消息发送请求进行消息发送。
9.如权利要求8所述的通讯平台故障隔离系统,其特征在于,所述故障隔离模块还包括设置单元、计数器、故障通道消息发送模块、线程获取模块、第三判断模块、第四判断模块和第五判断模块。
所述设置单元用于设置一故障通道标志,所述故障通道标志用于标示所述消息发送通道是否发生发送故障;
所述计数器用于记录所述消息发送通道成功发送所述消息发送请求的次数,当所述计数器的计数值达到取消故障阈值时,所述故障通道标志复位;
所述线程获取模块从所述本地消息队列拉取消息发送请求,再从所述隔离通道线程池获取隔离通道线程池线程,若获取失败,则发送警示信息,并将所述消息发送请求发送回本地消息队列;若获取成功则调用所述故障通道消息发送模块进行消息发送;
所述故障通道消息发送模块调用API,将所述消息发送请求下发至SOA模块进行发送;
所述第三判断模块判断API调用结果是否成功,若失败则调用所述第四判断模块判断所述API调用结果的失败原因;若成功则所述计数器的计数值加1,判断所述计数器的计数值是否等于取消故障阈值,若是则所述故障通道标志复位,若否则所述故障通道标志保持置位,调用所述第五判断模块进行所述本地消息队列的长度判断;
所述第四判断模块判断所述API调用结果的失败原因是否是超时失败,若是则调用所述线程获取模块继续获取线程;若否则将所述消息发送请求发送回所述本地消息队列,调用所述线程获取模块继续获取线程;
所述第五判断模块判断所述本地消息队列是否已为空,若否则调用所述线程获取模块继续获取线程;若是则所述计数器的计数值清零,继续执行所述拉取消息发送请求。
10.如权利要求6至9任一项所述的通讯平台故障隔离系统,其特征在于,所述隔离通道线程池还包括内存队列,所述隔离通道线程池预设一线程阈值,若所述隔离通道线程池中的线程数量达到所述线程阈值,则将线程加入所述内存队列中;所述内存队列也预设一队列阈值,若所述内存队列的数量达到所述队列阈值,则将所述消息发送请求发送回消息队列。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910324379.4A CN110048892B (zh) | 2019-04-22 | 2019-04-22 | 通讯平台故障隔离方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910324379.4A CN110048892B (zh) | 2019-04-22 | 2019-04-22 | 通讯平台故障隔离方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110048892A true CN110048892A (zh) | 2019-07-23 |
CN110048892B CN110048892B (zh) | 2022-08-12 |
Family
ID=67278350
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910324379.4A Active CN110048892B (zh) | 2019-04-22 | 2019-04-22 | 通讯平台故障隔离方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110048892B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110855792A (zh) * | 2019-11-19 | 2020-02-28 | 南京领行科技股份有限公司 | 一种消息推送方法、装置、设备及介质 |
CN110990436A (zh) * | 2019-12-04 | 2020-04-10 | 中国农业银行股份有限公司 | 一种用于Apache Kafka的消费信息流处理方法及系统 |
CN114742254A (zh) * | 2022-06-10 | 2022-07-12 | 成都秦川物联网科技股份有限公司 | 用于流水线设备故障处理的工业物联网及其控制方法 |
CN116627681A (zh) * | 2023-07-25 | 2023-08-22 | 太平金融科技服务(上海)有限公司 | 业务请求处理方法、装置、计算机设备、介质和程序产品 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103856392A (zh) * | 2013-06-26 | 2014-06-11 | 携程计算机技术(上海)有限公司 | 消息推送方法及其外发服务器和外发服务器系统 |
CN103856963A (zh) * | 2014-03-05 | 2014-06-11 | 浪潮通信信息系统有限公司 | 一种创建智能通信通道的方法 |
CN105472042A (zh) * | 2016-01-15 | 2016-04-06 | 中煤电气有限公司 | Web端控制的消息中间件系统及其数据传送方法 |
US20170026242A1 (en) * | 2015-07-20 | 2017-01-26 | Oracle International Corporation | System and method for use of a non-blocking process with a resource pool in a computing environment |
CN109582472A (zh) * | 2018-10-19 | 2019-04-05 | 华为技术有限公司 | 一种微服务处理方法及设备 |
-
2019
- 2019-04-22 CN CN201910324379.4A patent/CN110048892B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103856392A (zh) * | 2013-06-26 | 2014-06-11 | 携程计算机技术(上海)有限公司 | 消息推送方法及其外发服务器和外发服务器系统 |
CN103856963A (zh) * | 2014-03-05 | 2014-06-11 | 浪潮通信信息系统有限公司 | 一种创建智能通信通道的方法 |
US20170026242A1 (en) * | 2015-07-20 | 2017-01-26 | Oracle International Corporation | System and method for use of a non-blocking process with a resource pool in a computing environment |
CN105472042A (zh) * | 2016-01-15 | 2016-04-06 | 中煤电气有限公司 | Web端控制的消息中间件系统及其数据传送方法 |
CN109582472A (zh) * | 2018-10-19 | 2019-04-05 | 华为技术有限公司 | 一种微服务处理方法及设备 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110855792A (zh) * | 2019-11-19 | 2020-02-28 | 南京领行科技股份有限公司 | 一种消息推送方法、装置、设备及介质 |
CN110990436A (zh) * | 2019-12-04 | 2020-04-10 | 中国农业银行股份有限公司 | 一种用于Apache Kafka的消费信息流处理方法及系统 |
CN110990436B (zh) * | 2019-12-04 | 2024-02-23 | 中国农业银行股份有限公司 | 一种用于Apache Kafka的消费信息流处理方法及系统 |
CN114742254A (zh) * | 2022-06-10 | 2022-07-12 | 成都秦川物联网科技股份有限公司 | 用于流水线设备故障处理的工业物联网及其控制方法 |
CN114742254B (zh) * | 2022-06-10 | 2022-08-23 | 成都秦川物联网科技股份有限公司 | 用于流水线设备故障处理的工业物联网及其控制方法 |
US11599095B1 (en) | 2022-06-10 | 2023-03-07 | Chengdu Qinchuan Iot Technology Co., Ltd. | Industrial internet of things, control methods, and storage mediums for handling failure of assembly line equipment |
US11966214B2 (en) | 2022-06-10 | 2024-04-23 | Chengdu Qinchuan Iot Technology Co., Ltd. | Industrial internet of things systems for intelligent repair of manufacturing equipment and control methods thereof |
CN116627681A (zh) * | 2023-07-25 | 2023-08-22 | 太平金融科技服务(上海)有限公司 | 业务请求处理方法、装置、计算机设备、介质和程序产品 |
CN116627681B (zh) * | 2023-07-25 | 2023-10-17 | 太平金融科技服务(上海)有限公司 | 业务请求处理方法、装置、计算机设备、介质和程序产品 |
Also Published As
Publication number | Publication date |
---|---|
CN110048892B (zh) | 2022-08-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110048892A (zh) | 通讯平台故障隔离方法及系统 | |
CN108737548B (zh) | 分布式web微服务容器集群架构系统及其实现方法 | |
US6526521B1 (en) | Methods and apparatus for providing data storage access | |
US5987419A (en) | Automatic securities exchange system which detects communications errors and allows cancellation of orders | |
CN107659431A (zh) | 接口处理方法、装置、存储介质和处理器 | |
US8018842B2 (en) | Counter multi-failure system and common link terminal device used therein | |
CN105812161B (zh) | 一种控制器故障备份方法和系统 | |
US7925921B2 (en) | Fault recovery in concurrent queue management systems | |
JPH03106144A (ja) | ネツトワーク・モジュールの相互接続方法 | |
KR20010072379A (ko) | 내고장성 컴퓨터 시스템 | |
JP2560687B2 (ja) | 回線併用通信方法 | |
CN111800354A (zh) | 消息处理方法及装置、消息处理设备及存储介质 | |
CN110474917A (zh) | 消息中间件上、下线方法、装置、设备及可读存储介质 | |
US5084863A (en) | System for interchanging messages in real time between stations interconnected by a loop link, in particular between stations in a telecommunications exchange | |
US20050234919A1 (en) | Cluster system and an error recovery method thereof | |
US6948101B2 (en) | Apparatus and method for managing a network, and program thereof | |
CN111385115B (zh) | 反向业务路径故障传递处理方法及装置 | |
CN105991305B (zh) | 一种识别链路异常的方法及装置 | |
JP4299928B2 (ja) | 分散監視制御システム及び方法並びに分散監視制御用ソフトウェアを記録した記録媒体 | |
CN109361620A (zh) | 一种数据发送的方法、装置、设备及存储介质 | |
CN109634787A (zh) | 分布式文件系统监控器切换方法、装置、设备及存储介质 | |
Mahmoud et al. | Protocol considerations for software controlled access methods in distributed data bases | |
JPH04275661A (ja) | データ転送装置 | |
JPH02310755A (ja) | ヘルスチェック方式 | |
JPH04150238A (ja) | データ伝送装置 |
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 |