CN115426209A - 基于消息处理的高可靠消息队列广播控制方法 - Google Patents
基于消息处理的高可靠消息队列广播控制方法 Download PDFInfo
- Publication number
- CN115426209A CN115426209A CN202211381953.8A CN202211381953A CN115426209A CN 115426209 A CN115426209 A CN 115426209A CN 202211381953 A CN202211381953 A CN 202211381953A CN 115426209 A CN115426209 A CN 115426209A
- Authority
- CN
- China
- Prior art keywords
- message
- permanent
- message queue
- message body
- 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
- 238000012545 processing Methods 0.000 title claims abstract description 75
- 238000000034 method Methods 0.000 title claims abstract description 37
- 238000003780 insertion Methods 0.000 claims abstract description 59
- 230000037431 insertion Effects 0.000 claims abstract description 59
- 230000005540 biological transmission Effects 0.000 claims abstract description 31
- 230000004044 response Effects 0.000 claims description 43
- 230000002159 abnormal effect Effects 0.000 claims description 16
- 238000012544 monitoring process Methods 0.000 claims description 8
- 230000008569 process Effects 0.000 claims description 7
- 230000005856 abnormality Effects 0.000 claims description 2
- 230000002085 persistent effect Effects 0.000 claims 5
- 238000012163 sequencing technique Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000012806 monitoring device Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/1863—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast comprising mechanisms for improved reliability, e.g. status reports
- H04L12/1868—Measures taken after transmission, e.g. acknowledgments
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/1881—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with schedule organisation, e.g. priority, sequence management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明涉及一种基于消息处理的高可靠消息队列广播控制方法,该方法包括:根据任意消息体的消息描述符确定所述消息体的归属消息队列和消息体在所述归属消息队列中的***位置,形成若干个消息队列;将传输消息体的消息队列确定为目标消息队列,基于所述消息队列中的传输顺序进行传输;获取接收端对消息体的接收情况,并根据所述接收情况重启广播接收端或者切换目标消息队列。本发明以消息体的消息描述符为依据确定消息体应归属的消息队列类型和消息体在消息队列中应处的位置,以消息体的接收情况为依据重启广播接收端或者切换正在传输消息体的目标消息队列,提高了消息处理的时效性和可靠性。
Description
技术领域
本发明涉及***广播技术领域,尤其涉及一种基于消息处理的高可靠消息队列广播控制方法。
背景技术
在分布式计算环境中,为了集成分布式应用,开发者需要对异构环境下的分布式应用提供有效的通信手段。为了管理需要共享的信息。对分布式应用提供公共的信息交换机制是至关重要的。
消息队列技术是分布式应用间交换信息的一种技术,信息在***之间进行交换时,可以暂时驻留在内存或磁盘上形成消息队列,消息队列存储消息直到消息被应用程序读走。通过消息队列传播信息,***中的各个应用程序可以独立地执行命令,各个应用程序之间不需要确定彼此的位置,或在继续执行命令前不需要等待接收程序接收此消息。目前消息队列的通讯模式包括点对点通讯、多点广播、发布/订阅模式和群集,例如,专利申请号为CN202111620821.1公开了一种消息队列的管理方法、管理***和电子设备,该发明是在多个监听装置中的第一数量的目标监听装置确定第一主消息队列为异常状态时,监听服务器在与第一主消息队属于同一业务类型的多个从消息队列中,确定目标从消息队列,监听服务器将目标从消息队列切换为目标主消息队列,该发明虽通过利用监听服务器实现对各个消息队列的工作状态的监测并在主消息队列工作状态异常时切换消息队列,但消息处理的可靠性和时效性较低。
发明内容
为此,本发明提供一种基于消息处理的高可靠消息队列广播控制方法,可以解决现有技术中消息处理的可靠性和时效性较低的问题。
为实现上述目的,本发明提供一种基于消息处理的高可靠消息队列广播控制方法,包括:根据任意消息体的消息描述符确定所述消息体的归属消息队列和消息体在所述归属消息队列中的***位置,形成若干个消息队列;
将传输消息体的消息队列确定为目标消息队列,基于所述消息队列中的传输顺序进行传输;
获取接收端对消息体的接收情况,并根据所述接收情况重启广播接收端或者切换目标消息队列;
所述根据任意消息体的消息描述符确定所述消息体的归属消息队列和消息体在所述归属消息队列中的***位置包括:
广播发送端构建消息体并将消息体发送至描述符管理器,描述符管理器获取消息体生命周期和优先级;
描述符管理器根据消息体的生命周期判断消息体是非永久性消息体或是永久性消息体;
若描述符管理器判断消息体是非永久性消息体,则非永久性消息体按照发送时间的先后顺序进入非永久性消息队列;
若描述符管理器判断消息体是永久性消息体,描述符管理器判断永久性消息体的优先级;
若描述符管理器判断永久性消息体的优先级为第一优先级,则第一优先级永久性消息体按照发送时间的先后顺序进入永久性消息队列;
若描述符管理器判断永久性消息体的优先级为第二优先级或第三优先级,则描述符管理器确定其在永久性消息队列的***位置,第二优先级的永久性消息体或第三优先级的永久性消息体根据该***位置进入永久性消息队列。
进一步地,包括获取接收端对消息体的接收情况,并根据所述接收情况重启广播接收端或者切换目标消息队列包括:
监听广播接收端的接收情况;
判断广播接收端是否确认接收消息体;
广播接收端确认接收消息体,各永久性消息队列将已被接收的消息体删除;
广播接收端未确认接收消息体,判断广播接收端未接收到信息体的故障原因;
判断广播接收端是否不运行;
若广播接收端不运行,重启广播接收端;
若广播接收端正常运行,确定当前响应异常的消息体所在的当前目标消息队列,将消息队列群集中的其他消息队列择一作为替代目标消息队列;
检验该替代目标消息队列中相应的消息体是否响应正常;
替代目标消息队列中相应的消息体响应异常,继续选择未检验的消息队列进行检验,直至寻找到相应消息体响应正常的替代目标消息队列;
将替代目标消息队列切换为当前目标消息队列,重新发送消息体。
进一步地,根据消息体的消息描述符确定消息体的归属消息队列和***位置包括:
根据消息体的生命周期确定所述归属消息队列;
根据消息体的优先级确认所述***位置;
根据任意消息体的消息描述符确定所述消息体的归属消息队列包括:
当根据消息描述符中的生命周期确定消息体的所述归属消息队列时,
若消息体的生命周期为非永久,则该消息体为非永久性消息体,归属非永久性消息队列;
若消息体的生命周期为永久,则该消息体为永久性消息体,归属永久性消息队列。
进一步地,当永久性消息体归属永久性消息队列时,根据任意消息体的消息描述符确定***位置包括:
根据该永久性消息体的所述优先级确认永久性消息体在所述永久性消息队列中的所述***位置。
进一步地,当根据该永久性消息体的所述优先级确认永久性消息体在所述永久性消息队列中的所述***位置时,
若优先级为第一优先级,则永久性消息体按照发送的时间先后顺序排序进入永久性消息队列;
若优先级为第二优先级,则永久性消息体的***位置在所有的第一优先级的永久性消息体之前,且其在所有的第二优先级的消息体中的***位置需按照第二优先级的永久性消息体的发送时间先后顺序排序进入永久性消息队列;
若优先级为第三优先级则永久性消息体的***位置为永久性消息队列的最前端,所述最前端为永久性消息队列中首先进行传输的位置。
进一步地,***内包括若干个所述永久性消息队列,各所述永久性消息队列中包含的永久性消息体和永久性消息体的排列顺序完全相同,所有永久性消息队列共同构成消息队列群集。
进一步地,当根据永久性消息体的接收情况重启广播接收端或者切换目标消息队列时,
若广播接收端已确认接收永久性消息体,则不重启广播接收端并且不切换目标消息队列;
若广播接收端未确认接收永久性消息体,判断广播接收端未确认接收永久性消息体的故障原因,并根据故障原因重启广播接收端或切换目标消息队列;
所述故障原因包括广播接收端不运行和永久性消息体未响应。
进一步地,当根据故障原因重启广播接收端或切换目标消息队列时,
若故障原因为广播接收端不运行,则重启广播接收端;
若故障原因为永久性消息体未响应,则切换目标消息队列。
进一步地,当故障原因为永久性消息体未响应,切换目标消息队列时,确定未响应的永久性消息体所在的当前目标消息队列,同时在消息队列群集的其他消息队列中随机选择一个消息队列作为替代目标消息队列,并检验所述替代消息队列中的相应的永久性消息体的响应情况,并根据所述响应情况切换当前目标消息队列或继续寻找替代目标消息队列;
所述响应情况包括响应正常和响应异常。
进一步地,当检验所述替代消息队列中的相应的永久性消息体的响应情况,并根据所述响应情况切换当前目标消息队列或继续寻找替代目标消息队列时,
若替代目标消息队列中的相应的永久性消息体响应正常,则将替代目标消息队列切换为当前目标消息队列,原当前目标消息队列切换为不进行消息体传输的消息队列;
若替代目标消息队列中的相应的永久性消息体响应异常,则将替代目标消息队列切换为不进行消息体传输的消息队列,同时在群集的其他消息队列中随机选择一个消息队列作为替代目标消息队列,并重复检验过程,直至替代目标消息队列中的相应的永久性消息体响应正常,将替代目标消息队列切换为当前目标消息队列,原当前目标消息队列切换为不进行消息体传输的消息队列。
与现有技术相比,本发明的有益效果在于,通过根据消息体的消息描述符确定消息体的归属消息队列和***位置,根据消息体的接收情况重启广播接收端或者切换目标消息队列,实现了以消息体的消息描述符为依据确定消息体应归属的消息队列类型和消息体在消息队列中应处的位置,以消息体的接收情况为依据重启广播接收端或者切换正在传输消息体的目标消息队列,从而提高了消息处理的时效性和可靠性。
尤其,通过根据消息体的生命周期确定消息体所应归属的消息队列,实现对不同生命周期的消息体进行分别处理,既能够满足需要实现高可靠性和时效性的消息体的消息处理要求,又避免对无需考虑可靠性和时效性的消息体进行多余处理而导致***工作线程被占用,从而提高了消息处理的时效性和可靠性。
尤其,通过根据消息体的生命周期确定消息体所应归属的消息队列,将非永久性消息体归属非永久性消息队列,永久性消息体归属永久性消息队列,便于后期仅对永久性消息队列的排序进行优先级排序,既能够满足需要实现高可靠性和时效性的消息体的消息处理要求,又避免对无需考虑可靠性和时效性的消息体进行多余处理而导致***工作线程被占用,从而提高了消息处理的时效性和可靠性。
尤其,通过仅在将永久性消息体列入永久性消息队列时根据永久性消息体的优先级确定永久性消息体在永久性消息队列中***位置,既能够满足需要实现高可靠性和时效性的永久性消息体的消息处理要求,又避免对无需考虑可靠性和时效性的非永久性消息体进行多余处理而导致***的工作线程被占用,从而提高了消息处理的时效性和可靠性。
尤其,通过根据永久性消息体的优先级确定其在永久性队列中的***位置,令优先级为第一优先级的消息体按照发送的时间先后顺序排序进入永久性消息队列,令优先级为第二优先级的消息体的***位置在所有的第一优先级消息体之前,且其在所有的第二优先级消息体中的***位置需第二优先级消息体的发送时间先后顺序排序进入永久性消息队列,令优先级为第三优先级的消息体的***位置为永久性消息队列的最前端,满足需要实现高可靠性和时效性的消息体的消息处理要求,从而提高了消息处理的时效性和可靠性。
尤其,通过将***内设置若干个永久性消息队列,并且令所有的永久性消息队列同时将永久性消息体以相同的录入顺序录入,使所有的永久性消息队列完全相同,并将所有永久性消息队列共同作为一个群集以对广播接收端传输消息体,实现了对永久性消息体录入时即将永久性消息体备份,且使其在各个备份存储地址中处理顺序一致,当某个进行传输的永久性消息队列无法正常工作时,由其他永久性消息队列作为备份继续完成消息传输,从而提高了消息处理的时效性和可靠性。
尤其,通过根据消息体的接收情况,重启广播接收端或者切换目标消息队列,在广播接收端已确认接收消息体时,不重启广播接收端并且不切换目标消息队列,在广播接收端未确认接收消息体时,判断广播接收端未确认接收消息体的故障原因,并根据故障原因重启广播接收端或切换目标消息队列,实现了对消息体的消息处理情况的实时监测,在消息处理情况正常时,保持当前目标消息队列,在消息处理情况异常时,及时分析故障原因,并根据故障原因重启广播接收端或切换目标消息队列以解决故障,从而提高了消息处理的时效性和可靠性。
尤其,通过在消息处理情况异常时,及时分析故障原因,在故障原因为广播接收端不运行时,重启广播接收端,在故障原因为永久性消息体未响应,切换目标消息队列,避免在广播接收端不运行的状态下盲目切换目标消息队列致使无法解决异常的消息处理情况,从而提高了消息处理的时效性和可靠性。
尤其,通过在因消息体未发生响应而导致广播接收端未能及时处理消息体时,及时在群集中除当前目标消息队列以外的其他消息队列中寻找替代目标消息队列以替代当前目标消息队列进行消息体传输,使在某一个消息体发生故障时,及时寻找到备份的消息体完成传输任务,从而提高了消息处理的时效性和可靠性。
尤其,通过对替代目标消息队列中相应的消息体的响应情况提前进行检验,在替代目标消息队列中的相应的消息体响应正常时,将替代消息队列切换作为当前目标消息队列,以替代原当前目标消息队列进行消息体传输,在替代消息队列中的相应的消息体响应异常时,继续在群集内寻找相应的消息体响应正常的替代目标消息队列,以替代原当前目标消息队列进行消息体传输,从而提高了消息处理的时效性和可靠性。
附图说明
图1为本发明实施例提供的基于消息处理的高可靠消息队列广播控制方法的简易流程示意图;
图2为本发明实施例提供的基于消息处理的高可靠消息队列广播控制方法中的步骤S1的简易流程示意图;
图3为本发明实施例提供的基于消息处理的高可靠消息队列广播控制方法中的步骤S3的简易流程示意图。
具体实施方式
为了使本发明的目的和优点更加清楚明白,下面结合实施例对本发明作进一步描述;应当理解,此处所描述的具体实施例仅仅用于解释本发明,并不用于限定本发明。
下面参照附图来描述本发明的优选实施方式。本领域技术人员应当理解的是,这些实施方式仅仅用于解释本发明的技术原理,并非在限制本发明的保护范围。
需要说明的是,在本发明的描述中,术语“上”、“下”、“左”、“右”、“内”、“外”等指示的方向或位置关系的术语是基于附图所示的方向或位置关系,这仅仅是为了便于描述,而不是指示或暗示所述装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
此外,还需要说明的是,在本发明的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域技术人员而言,可根据具体情况理解上述术语在本发明中的具体含义。
本发明实施例提供的一种基于消息处理的高可靠消息队列广播控制方法,该方法包括:
根据任意消息体的消息描述符确定所述消息体的归属消息队列和消息体在所述归属消息队列中的***位置,形成若干个消息队列;
将传输消息体的消息队列确定为目标消息队列,基于所述消息队列中的传输顺序进行传输;
获取接收端对消息体的接收情况,并根据所述接收情况重启广播接收端或者切换目标消息队列;
所述根据任意消息体的消息描述符确定所述消息体的归属消息队列和消息体在所述归属消息队列中的***位置包括:
广播发送端构建消息体并将消息体发送至描述符管理器,描述符管理器获取消息体生命周期和优先级;
描述符管理器根据消息体的生命周期判断消息体是非永久性消息体或是永久性消息体;
若描述符管理器判断消息体是非永久性消息体,则非永久性消息体按照发送时间的先后顺序进入非永久性消息队列;
若描述符管理器判断消息体是永久性消息体,描述符管理器判断永久性消息体的优先级;
若描述符管理器判断永久性消息体的优先级为第一优先级,则第一优先级永久性消息体按照发送时间的先后顺序进入永久性消息队列;
若描述符管理器判断永久性消息体的优先级为第二优先级或第三优先级,则描述符管理器确定其在永久性消息队列的***位置,第二优先级的永久性消息体或第三优先级的永久性消息体根据该***位置进入永久性消息队列。
消息体的消息描述符包括生命周期和优先级,其中,生命周期包括非永久和永久,生命周期为永久的消息体需要保证传输的可靠性和处理的时效性,需列入永久性消息队列中进行备份和按照其处理的紧急程度调整其在消息队列中的***位置,而生命周期为非永久的消息体则无需考虑其可靠性和时效性的问题,仅列入非永久性消息队列中,将其与永久性消息体进行区别即可,消息体的优先级包括第一优先级、第二优先级和第三优先级,设定各优先级的优先顺序为第一优先级<第二优先级<第三优先级,消息体的优先级的划分根据用户的需求进行设定,可以以发送消息体的广播发送模块的类别、广播发送模块的发送消息体的频率、接收消息体的广播接收模块和广播接收模块接收消息体的频率等为标准进行划分,确定所述消息体的归属消息队列和***位置,形成若干传输消息队列。
通过根据消息体的消息描述符确定消息体的归属消息队列和***位置,根据消息体的接收情况重启广播接收端或者切换目标消息队列,实现了以消息体的消息描述符为依据确定消息体应归属的消息队列类型和消息体在消息队列中应处的位置,以消息体的接收情况为依据重启广播接收端或者切换正在传输消息体的目标消息队列,从而提高了消息处理的时效性和可靠性。
具体而言,获取接收端对消息体的接收情况,并根据所述接收情况重启广播接收端或者切换目标消息队列包括:
监听广播接收端的接收情况;
判断广播接收端是否确认接收消息体;
广播接收端确认接收消息体,各永久性消息队列将已被接收的消息体删除;
广播接收端未确认接收消息体,判断广播接收端未接收到信息体的故障原因;
判断广播接收端是否不运行;
若广播接收端不运行,重启广播接收端;
若广播接收端正常运行,确定当前响应异常的消息体所在的当前目标消息队列,将消息队列群集中的其他消息队列择一作为替代目标消息队列;
检验该替代目标消息队列中相应的消息体是否响应正常;
替代目标消息队列中相应的消息体响应异常,继续选择未检验的消息队列进行检验,直至寻找到相应消息体响应正常的替代目标消息队列;
将替代目标消息队列切换为当前目标消息队列,重新发送消息体。
由于用户对不同的生命周期的消息体的可靠性和时效性的要求不同,需要根据消息体的生命周期确定该消息体应归属的队列,进而对要求高可靠性和时效性的消息体根据其优先级在消息队列中进行排序,使需要优先进行处理的消息体较早地传输至广播接收端处并得到处理。
通过根据消息体的生命周期确定消息体所应归属的消息队列,实现对不同生命周期的消息体进行分别处理,既能够满足需要实现高可靠性和时效性的消息体的消息处理要求,又避免对无需考虑可靠性和时效性的消息体进行多余处理而导致***工作线程被占用,从而提高了消息处理的时效性和可靠性。
具体而言,根据消息体的消息描述符确定消息体的归属消息队列和***位置包括:
根据消息体的生命周期确定所述归属消息队列;
根据消息体的优先级确认所述***位置;
根据任意消息体的消息描述符确定所述消息体的归属消息队列包括:
当根据消息描述符中的生命周期确定消息体的所述归属消息队列时,
若消息体的生命周期为非永久,则该消息体为非永久性消息体,归属非永久性消息队列;
若消息体的生命周期为永久,则该消息体为永久性消息体,归属永久性消息队列。
消息体的生命周期分为非永久性和永久性,非永久性消息体是为提高性能而设计的,通常存储在内存中,当***断电或消息队列管理器重新启动时不可恢复,用户对此类消息体的可靠性要求低,而永久性消息体用于记录数据日志,用户往往对其具有高可靠性的要求,需要在网络和***发生故障等情况下确保消息不丢失、不重复,故而将非永久性消息体归属至非永久性消息队列,对非永久性消息队列无需考虑消息处理的可靠性及时效性,即将非永久消息体简单存储在非永久性消息队列中,此外,将永久性消息体归属至永久性消息队列,由于对永久性消息体的时效性要求较高,因此在进行归属时需要根据永久性消息体的优先级确定其在永久性消息队列中的***位置。
通过根据消息体的生命周期确定消息体所应归属的消息队列,将非永久性消息体归属非永久性消息队列,永久性消息体归属永久性消息队列,便于后期仅对永久性消息队列的排序进行优先级排序,既能够满足需要实现高可靠性和时效性的消息体的消息处理要求,又避免对无需考虑可靠性和时效性的消息体进行多余处理而导致***工作线程被占用,从而提高了消息处理的时效性和可靠性。
具体而言,当永久性消息体归属永久性消息队列时,根据任意消息体的消息描述符确定***位置包括:
根据该永久性消息体的所述优先级确认永久性消息体在所述永久性消息队列中的所述***位置。
永久性消息体用于记录数据日志,用户往往对其具有高可靠性的要求,需要在网络和***发生故障等情况下确保消息不丢失、不重复,将永久性消息体归属至永久性消息队列,由于对永久性消息体的时效性要求较高,因此在进行归属时需要根据永久性消息体的优先级确定其在永久性消息队列中的***位置。
通过仅在将永久性消息体列入永久性消息队列时根据永久性消息体的优先级确定永久性消息体在永久性消息队列中***位置,既能够满足需要实现高可靠性和时效性的永久性消息体的消息处理要求,又避免对无需考虑可靠性和时效性的非永久性消息体进行多余处理而导致***的工作线程被占用,从而提高了消息处理的时效性和可靠性。
具体而言,当根据该永久性消息体的所述优先级确认永久性消息体在所述永久性消息队列中的所述***位置时,
若优先级为第一优先级,则永久性消息体按照发送的时间先后顺序排序进入永久性消息队列;
若优先级为第二优先级,则永久性消息体的***位置在所有的第一优先级的永久性消息体之前,且其在所有的第二优先级消息体中的***位置需按照第二优先级的永久性消息体的发送时间先后顺序排序进入永久性消息队列;
若优先级为第三优先级则永久性消息体的***位置为永久性消息队列的最前端,所述最前端为永久性消息队列中首先进行传输的位置。
***根据消息体的广播发送端、消息体的广播接收端划分消息体的优先级,根据消息体的优先级确认消息体在永久性消息队列中的***位置时,若优先级为第一优先级,则消息体按照发送的时间先后顺序排序进入永久性消息队列;若优先级为第二优先级,则消息体的***位置在所有的第一优先级消息体之前,但其在所有的第二优先级消息体中的***位置需按照第二优先级消息体的发送时间先后顺序排序进入永久性消息队列;若优先级为第三优先级,则消息体的***位置为永久性消息队列的最前端,所述第一优先级的级别低于第二优先级的级别对于第三优先级的级别,所述消息提的优先级是基于消息体的功能在***中的重要性决定的。
通过根据永久性消息体的优先级确定其在永久性队列中的***位置,令优先级为第一优先级的消息体按照发送的时间先后顺序排序进入永久性消息队列,令优先级为第二优先级的消息体的***位置在所有的第一优先级消息体之前,且其在所有的第二优先级消息体中的***位置需按照第二优先级消息体的发送时间先后顺序排序进入永久性消息队列,令优先级为第三优先级的消息体的***位置为永久性消息队列的最前端,满足需要实现高可靠性和时效性的消息体的消息处理要求,从而提高了消息处理的时效性和可靠性。
具体而言,***内包括若干个所述永久性消息队列,各所述永久性消息队列中包含的永久性消息体和永久性消息体的排列顺序完全相同,所有永久性消息队列共同构成消息队列群集。
通过将***内设置若干个永久性消息队列,并且令所有的永久性消息队列同时将永久性消息体以相同的录入顺序录入,使所有的永久性消息队列完全相同,并将所有永久性消息队列共同作为一个群集以对广播接收端传输消息体,实现了对永久性消息体录入时即将永久性消息体备份,且使其在各个备份存储地址中处理顺序一致,当某个进行传输的永久性消息队列无法正常工作时,由其他永久性消息队列作为备份继续完成消息传输,从而提高了消息处理的时效性和可靠性。
具体而言,当根据永久性消息体的接收情况重启广播接收端或者切换目标消息队列时,
若广播接收端已确认接收永久性消息体,则不重启广播接收端并且不切换目标消息队列;
若广播接收端未确认接收永久性消息体,判断广播接收端未确认接收永久性消息体的故障原因,并根据故障原因重启广播接收端或切换目标消息队列;
所述故障原因包括广播接收端不运行和永久性消息体未响应。
若干个永久性消息队列组成了消息队列群集,其中一个永久性消息队列作为当前目标消息队列,将内部存储的消息体按照顺序一一传输至广播接收端处进行处理,当广播接收端接收到某个消息体并进行处理后,将自动确认消息体已经处理,则此时目标消息队列对下一个消息体进行传输。当某时刻发生广播接收端未反馈消息体的接收情况的故障时,***需对此故障进行原因分析,并根据该故障原因对广播接收端的工作状态进行调整或切换当前目标消息队列。
通过根据消息体的接收情况,重启广播接收端或者切换目标消息队列,在广播接收端已确认接收消息体时,不重启广播接收端并且不切换目标消息队列,在广播接收端未确认接收消息体时,判断广播接收端未确认接收消息体的故障原因,并根据故障原因重启广播接收端或切换目标消息队列,实现了对消息体的消息处理情况的实时监测,在消息处理情况正常时,保持当前目标消息队列,在消息处理情况异常时,及时分析故障原因,并根据故障原因重启广播接收端或切换目标消息队列以解决故障,从而提高了消息处理的时效性和可靠性。
具体而言,当根据故障原因重启广播接收端或切换目标消息队列时,
若故障原因为广播接收端不运行,则重启广播接收端;
若故障原因为永久性消息体未响应,则切换目标消息队列。
通过在消息处理情况异常时,及时分析故障原因,在故障原因为广播接收端不运行时,重启广播接收端,在故障原因为永久性消息体未响应,切换目标消息队列,避免在广播接收端不运行的状态下盲目切换目标消息队列致使无法解决异常的消息处理情况,从而提高了消息处理的时效性和可靠性。
具体而言,当故障原因为永久性消息体未响应,切换目标消息队列时,确定未响应的永久性消息体所在的当前目标消息队列,同时在消息队列群集的其他消息队列中随机选择一个消息队列作为替代目标消息队列,并检验所述替代消息队列中的相应的永久性消息体的响应情况,并根据所述响应情况切换当前目标消息队列或继续寻找替代目标消息队列;
所述响应情况包括响应正常和响应异常。
通过在因消息体未发生响应而导致广播接收端未能及时处理消息体时,及时在群集中除当前目标消息队列以外的其他消息队列中寻找替代目标消息队列以替代当前目标消息队列进行消息体传输,使在某一个消息体发生故障时,及时寻找到备份的消息体完成传输任务,从而提高了消息处理的时效性和可靠性。
具体而言,当检验所述替代消息队列中的相应的永久性消息体的响应情况,并根据所述响应情况切换当前目标消息队列或继续寻找替代目标消息队列时,
若替代目标消息队列中的相应的永久性消息体响应正常,则将替代目标消息队列切换为当前目标消息队列,原当前目标消息队列切换为不进行消息体传输的消息队列;
若替代目标消息队列中的相应的永久性消息体响应异常,则将替代目标消息队列切换为不进行消息体传输的消息队列,同时在群集的其他消息队列中随机选择一个消息队列作为替代目标消息队列,并重复检验过程,直至替代消息队列中的相应的永久性消息体响应正常,将替代目标消息队列切换为当前目标消息队列,原当前目标消息队列切换为不进行消息体传输的消息队列。
通过对替代目标消息队列中相应的消息体的响应情况提前进行检验,在替代目标消息队列中的相应的消息体响应正常时,将替代消息队列切换作为当前目标消息队列,以替代原当前目标消息队列进行消息体传输,在替代消息队列中的相应的消息体响应异常时,继续在群集内寻找相应的消息体响应正常的替代目标消息队列,以替代原当前目标消息队列进行消息体传输,从而提高了消息处理的时效性和可靠性。
请参阅图1所示,本发明实施例提供的一种基于消息处理的高可靠消息队列广播控制方法的简易流程图。
在实际使用过程中,本发明实施例提供的一种基于消息处理的高可靠消息队列广播控制方法的具体实施步骤如下:
步骤S1:根据任意消息体的消息描述符确定所述消息体的归属消息队列和消息体在所述归属消息队列中的***位置,形成若干个消息队列;
步骤S2:将传输消息体的消息队列确定为目标消息队列,基于所述消息队列中的传输顺序进行传输;
步骤S3:获取接收端对消息体的接收情况,并根据所述接收情况重启广播接收端或者切换目标消息队列。
消息体的生命周期分为非永久性和永久性,非永久性消息体是为提高性能而设计的,通常存储在内存中,当***断电或消息队列管理器重新启动时不可恢复,用户对此类消息体的可靠性要求低,而永久性消息体用于记录数据日志,用户往往对其具有高可靠性的要求,需要在网络和***发生故障等情况下确保消息不丢失、不重复,故而将非永久性消息体归属至非永久性消息队列,对非永久性消息队列无需考虑消息处理的可靠性及时效性,即将非永久消息体简单存储在非永久性消息队列中,此外,将永久性消息体归属至永久性消息队列,由于对永久性消息体的时效性要求较高,因此在进行归属时需要根据永久性消息体的优先级确定其在永久性消息队列中的***位置,令需要优先进行处理的消息体在消息队列中处于较为前端的位置,以使其优先被传输至广播接收端得到处理。
请参阅图2所示,本发明实施例提供的一种基于消息处理的高可靠消息队列广播控制方法的步骤S1的简易流程图。
其中,步骤S1包括:
步骤S101:广播发送端构建消息体并将消息体发送至描述符管理器,描述符管理器获取消息体的消息描述符,即消息体的生命周期和优先级;
步骤S102:描述符管理器根据消息体的生命周期判断消息体是非永久性消息体或是永久性消息体;
步骤S103:若描述符管理器判断消息体是非永久性消息体,则非永久性消息体按照发送时间的先后顺序进入非永久性消息队列;
步骤S104:若描述符管理器判断消息体是永久性消息体,描述符管理器判断永久性消息体的优先级;
步骤S105:若描述符管理器判断永久性消息体的优先级为第一优先级,则第一优先级永久性消息体按照发送时间的先后顺序进入永久性消息队列;
步骤S106:若描述符管理器判断永久性消息体的优先级为第二优先级或第三优先级,则描述符管理器确定其在永久性消息队列的***位置,第二优先级永久性消息体或第三优先级永久性消息体根据该***位置进入永久性消息队列。
请参阅图3所示,本发明实施例提供的一种基于消息处理的高可靠消息队列广播控制方法的步骤S3的简易流程图。
其中,步骤S3包括:
步骤S301:监听广播接收端的接收情况;
步骤S302:判断广播接收端是否确认接收消息体;
步骤S303:广播接收端确认接收消息体,各个永久性消息队列将已被接收的消息体删除;
步骤S304:广播接收端未确认接收消息体,判断广播接收端未接收到信息体的故障原因;
步骤S305:判断广播接收端是否不运行;
步骤S306:若广播接收端不运行,重启广播接收端;
步骤S307:若广播接收端正常运行,确定当前响应异常的消息体所在的当前目标消息队列,将消息队列群集中的其他消息队列择一作为替代目标消息队列;
步骤S308:检验该替代目标消息队列中相应的消息体是否响应正常;
步骤S309:替代目标消息队列中相应的消息体响应异常,继续选择未检验的消息队列进行检验,直至寻找到相应消息体响应正常的替代目标消息队列;
步骤S310:将替代目标消息队列切换为当前目标消息队列,重新发送消息体。
至此,已经结合附图所示的优选实施方式描述了本发明的技术方案,但是,本领域技术人员容易理解的是,本发明的保护范围显然不局限于这些具体实施方式。在不偏离本发明的原理的前提下,本领域技术人员可以对相关技术特征做出等同的更改或替换,这些更改或替换之后的技术方案都将落入本发明的保护范围之内。
以上所述仅为本发明的优选实施例,并不用于限制本发明;对于本领域的技术人员来说,本发明可以有各种更改和变化。 凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种基于消息处理的高可靠消息队列广播控制方法,其特征在于,包括:根据任意消息体的消息描述符确定所述消息体的归属消息队列和消息体在所述归属消息队列中的***位置,形成若干个消息队列;
将传输消息体的消息队列确定为目标消息队列,基于所述消息队列中的传输顺序进行传输;
获取接收端对消息体的接收情况,并根据所述接收情况重启广播接收端或者切换目标消息队列;
当根据永久性消息体的接收情况重启广播接收端或者切换目标消息队列时,若广播接收端未确认接收永久性消息体,判断广播接收端未确认接收永久性消息体的故障原因,并根据故障原因重启广播接收端或切换目标消息队列;
所述故障原因包括广播接收端不运行和永久性消息体未响应;
当根据故障原因重启广播接收端或切换目标消息队列时,若故障原因为永久性消息体未响应,则切换目标消息队列;
当故障原因为永久性消息体未响应,切换目标消息队列时,确定未响应的永久性消息体所在的当前目标消息队列,同时在消息队列群集的其他消息队列中随机选择一个消息队列作为替代目标消息队列,并检验所述替代目标消息队列中的相应的永久性消息体的响应情况,并根据所述响应情况切换当前目标消息队列或继续寻找替代目标消息队列;所述响应情况包括响应正常和响应异常;
所述根据任意消息体的消息描述符确定所述消息体的归属消息队列和消息体在所述归属消息队列中的***位置包括:
广播发送端构建消息体并将消息体发送至描述符管理器,描述符管理器获取消息体生命周期和优先级;
描述符管理器根据消息体的生命周期判断消息体是非永久性消息体或是永久性消息体;
若描述符管理器判断消息体是非永久性消息体,则非永久性消息体按照发送时间的先后顺序进入非永久性消息队列;
若描述符管理器判断消息体是永久性消息体,描述符管理器判断永久性消息体的优先级;
若描述符管理器判断永久性消息体的优先级为第一优先级,则第一优先级永久性消息体按照发送时间的先后顺序进入永久性消息队列;
若描述符管理器判断永久性消息体的优先级为第二优先级或第三优先级,则描述符管理器确定其在永久性消息队列的***位置,第二优先级的永久性消息体或第三优先级的永久性消息体根据该***位置进入永久性消息队列。
2.根据权利要求1所述的基于消息处理的高可靠消息队列广播控制方法,其特征在于,获取接收端对消息体的接收情况,并根据所述接收情况重启广播接收端或者切换目标消息队列包括:
监听广播接收端的接收情况;
判断广播接收端是否确认接收消息体;
广播接收端确认接收消息体,各永久性消息队列将已被接收的消息体删除;
广播接收端未确认接收消息体,判断广播接收端未接收到信息体的故障原因;
判断广播接收端是否不运行;
若广播接收端不运行,重启广播接收端;
若广播接收端正常运行,确定当前响应异常的消息体所在的当前目标消息队列,将消息队列群集中的其他消息队列择一作为替代目标消息队列;
检验该替代目标消息队列中相应的消息体是否响应正常;
替代目标消息队列中相应的消息体响应异常,继续选择未检验的消息队列进行检验,直至寻找到相应消息体响应正常的替代目标消息队列;
将替代目标消息队列切换为当前目标消息队列,重新发送消息体。
3.根据权利要求2所述的基于消息处理的高可靠消息队列广播控制方法,其特征在于,根据消息体的消息描述符确定消息体的归属消息队列和***位置包括:
根据消息体的生命周期确定所述归属消息队列;
根据消息体的优先级确认所述***位置;
根据任意消息体的消息描述符确定所述消息体的归属消息队列包括:
当根据消息描述符中的生命周期确定消息体的所述归属消息队列时,
若消息体的生命周期为非永久,则该消息体为非永久性消息体,归属非永久性消息队列;
若消息体的生命周期为永久,则该消息体为永久性消息体,归属永久性消息队列。
4.根据权利要求3所述的基于消息处理的高可靠消息队列广播控制方法,其特征在于,当永久性消息体归属永久性消息队列时,根据任意消息体的消息描述符确定***位置包括:
根据该永久性消息体的所述优先级确认永久性消息体在所述永久性消息队列中的所述***位置。
5.根据权利要求4所述的基于消息处理的高可靠消息队列广播控制方法,其特征在于,当根据该永久性消息体的所述优先级确认永久性消息体在所述永久性消息队列中的所述***位置时,
若优先级为第一优先级,则永久性消息体按照发送的时间先后顺序排序进入永久性消息队列;
若优先级为第二优先级,则永久性消息体的***位置在所有的第一优先级的永久性消息体之前,且其在所有的第二优先级的消息体中的***位置需按照第二优先级的永久性消息体的发送时间先后顺序排序进入永久性消息队列;
若优先级为第三优先级则永久性消息体的***位置为永久性消息队列的最前端,所述最前端为永久性消息队列中首先进行传输的位置。
6.根据权利要求5所述的基于消息处理的高可靠消息队列广播控制方法,其特征在于,***内包括若干个所述永久性消息队列,各所述永久性消息队列中包含的永久性消息体和永久性消息体的排列顺序完全相同,所有永久性消息队列共同构成消息队列群集。
7.根据权利要求6所述的基于消息处理的高可靠消息队列广播控制方法,其特征在于,
若广播接收端已确认接收永久性消息体,则不重启广播接收端并且不切换目标消息队列。
8.根据权利要求7所述的基于消息处理的高可靠消息队列广播控制方法,其特征在于,若故障原因为广播接收端不运行,则重启广播接收端。
9.根据权利要求8所述的基于消息处理的高可靠消息队列广播控制方法,其特征在于,当检验所述替代目标消息队列中的相应的永久性消息体的响应情况,并根据所述响应情况切换当前目标消息队列或继续寻找替代目标消息队列时,
若替代目标消息队列中的相应的永久性消息体响应正常,则将替代目标消息队列切换为当前目标消息队列,原当前目标消息队列切换为不进行消息体传输的消息队列;
若替代目标消息队列中的相应的永久性消息体响应异常,则将替代目标消息队列切换为不进行消息体传输的消息队列,同时在群集的其他消息队列中随机选择一个消息队列作为替代目标消息队列,并重复检验过程,直至替代消息队列中的相应的永久性消息体响应正常,将替代目标消息队列切换为当前目标消息队列,原当前目标消息队列切换为不进行消息体传输的消息队列。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211381953.8A CN115426209B (zh) | 2022-11-07 | 2022-11-07 | 基于消息处理的高可靠消息队列广播控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211381953.8A CN115426209B (zh) | 2022-11-07 | 2022-11-07 | 基于消息处理的高可靠消息队列广播控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115426209A true CN115426209A (zh) | 2022-12-02 |
CN115426209B CN115426209B (zh) | 2023-02-10 |
Family
ID=84207722
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211381953.8A Active CN115426209B (zh) | 2022-11-07 | 2022-11-07 | 基于消息处理的高可靠消息队列广播控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115426209B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103634203A (zh) * | 2013-11-29 | 2014-03-12 | 北京奇虎科技有限公司 | 消息异步传输方法、装置和*** |
US9426115B1 (en) * | 2012-10-15 | 2016-08-23 | Solace Systems, Inc. | Message delivery system and method with queue notification |
CN107896172A (zh) * | 2017-11-24 | 2018-04-10 | 泰康保险集团股份有限公司 | 监听故障处理方法及装置、存储介质和电子设备 |
CN109347757A (zh) * | 2018-11-09 | 2019-02-15 | 锐捷网络股份有限公司 | 消息拥塞控制方法、***、设备及存储介质 |
CN109729003A (zh) * | 2018-12-28 | 2019-05-07 | 济南铁路信息技术有限公司 | 一种客运列车时刻数据传输方法及*** |
CN111800354A (zh) * | 2019-04-08 | 2020-10-20 | 中移(苏州)软件技术有限公司 | 消息处理方法及装置、消息处理设备及存储介质 |
CN114422457A (zh) * | 2021-12-16 | 2022-04-29 | 上海浦东发展银行股份有限公司 | 基于消息队列实现的灰度发布方法、***、设备及介质 |
CN114461415A (zh) * | 2021-12-27 | 2022-05-10 | 苏州浪潮智能科技有限公司 | 消息数据处理方法、装置、计算机设备及存储介质 |
CN115167996A (zh) * | 2022-06-23 | 2022-10-11 | 哲库科技(北京)有限公司 | 调度方法及装置、芯片、电子设备及存储介质 |
-
2022
- 2022-11-07 CN CN202211381953.8A patent/CN115426209B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9426115B1 (en) * | 2012-10-15 | 2016-08-23 | Solace Systems, Inc. | Message delivery system and method with queue notification |
CN103634203A (zh) * | 2013-11-29 | 2014-03-12 | 北京奇虎科技有限公司 | 消息异步传输方法、装置和*** |
CN107896172A (zh) * | 2017-11-24 | 2018-04-10 | 泰康保险集团股份有限公司 | 监听故障处理方法及装置、存储介质和电子设备 |
CN109347757A (zh) * | 2018-11-09 | 2019-02-15 | 锐捷网络股份有限公司 | 消息拥塞控制方法、***、设备及存储介质 |
CN109729003A (zh) * | 2018-12-28 | 2019-05-07 | 济南铁路信息技术有限公司 | 一种客运列车时刻数据传输方法及*** |
CN111800354A (zh) * | 2019-04-08 | 2020-10-20 | 中移(苏州)软件技术有限公司 | 消息处理方法及装置、消息处理设备及存储介质 |
CN114422457A (zh) * | 2021-12-16 | 2022-04-29 | 上海浦东发展银行股份有限公司 | 基于消息队列实现的灰度发布方法、***、设备及介质 |
CN114461415A (zh) * | 2021-12-27 | 2022-05-10 | 苏州浪潮智能科技有限公司 | 消息数据处理方法、装置、计算机设备及存储介质 |
CN115167996A (zh) * | 2022-06-23 | 2022-10-11 | 哲库科技(北京)有限公司 | 调度方法及装置、芯片、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115426209B (zh) | 2023-02-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0471090B1 (en) | Message communication processing system | |
US6859889B2 (en) | Backup system and method for distributed systems | |
US6438707B1 (en) | Fault tolerant computer system | |
CN110535692B (zh) | 故障处理方法、装置、计算机设备、存储介质及存储*** | |
EP0343630A2 (en) | Terminal apparatus for resetting by remote control | |
EP0854610A2 (en) | Ethernet communication redundancy method | |
JP2009151685A (ja) | ディスクアレイ装置管理システム、ディスクアレイ装置、ディスクアレイ装置の制御方法および管理サーバ | |
CN114338651B (zh) | 文件传输方法、装置、电子设备及可读存储介质 | |
JP5274122B2 (ja) | 設備機器制御監視装置および設備機器制御監視プログラム | |
EP1153346A1 (en) | Coordinating persistent status information with multiple file servers | |
US7797571B2 (en) | System, method and circuit for mirroring data | |
CN112422684A (zh) | 目标消息的处理方法及装置、存储介质、电子装置 | |
JPH104373A (ja) | 伝送装置識別番号付与方法、伝送装置及び伝送システム管理装置 | |
CN115426209B (zh) | 基于消息处理的高可靠消息队列广播控制方法 | |
US5377322A (en) | Information handling method and system utilizing multiple interconnected processors and controllers | |
CN113190385A (zh) | 车站应用服务器主备机的数据同步方法 | |
US6792558B2 (en) | Backup system for operation system in communications system | |
CN112698991B (zh) | 基于1比1心跳的双机热备***和方法 | |
CN113542001A (zh) | Osd故障心跳检测方法、装置、设备及存储介质 | |
CN111431780B (zh) | 一种1553b总线***的通信方法及装置 | |
CN104796228B (zh) | 一种信息传输的方法、装置及*** | |
CN115150031B (zh) | 基于分布式消息的分布式***消息响应方法及装置 | |
JP2829040B2 (ja) | 情報集配信システム | |
EP4174668A1 (en) | Communication interface adapter, method for dynamic pid assignment, and method for automatically diagnosing peripheral device and recovering peripheral device found to be in abnormal operation | |
CN115809273A (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 |