一种用于消息队列管理系统的消息传送方法及系统技术方案

技术编号:35775687 阅读:20 留言:0更新日期:2022-12-01 14:19
本申请涉及技术领域,尤其涉及一种用于消息队列管理系统的消息传送方法,包括以下步骤,接收并消费业务消息,判断所述业务消息是否消费成功;根据判断结果,将所述业务消息对应的确认消息标记为对应的消费状态;接收所述业务消息对应的检测消息,判断所述确认消息与所述检测消息是否匹配,根据判断结果,针对未成功消费的所述业务消息,重复以上所有步骤。应用本申请提供的方法,无需定时任务频繁访问数据库,大量减少数据库层面的操作;采用消息多次传送的方式作异步补偿,业务消息流转的链路与确认消息流转的链路相互独立,实现了解耦,提高了应用程序的扩展能力。提高了应用程序的扩展能力。提高了应用程序的扩展能力。

【技术实现步骤摘要】
一种用于消息队列管理系统的消息传送方法及系统


[0001]本申请涉及
,尤其涉及一种用于消息队列管理系统的消息传送方法及系统。

技术介绍

[0002]为了提高消息传递的可靠性,通常是在消息传送的不同阶段,采用定时任务的方式向数据库复核消息是否已成功处理,但这种方式需要定时任务频繁访问数据库,导致磁盘IO操作过于频繁,严重影响应用程序的性能。

技术实现思路

[0003]为了尽可能减少数据库层面的访问操作,提高应用程序的扩展能力,
[0004]第一方面,本申请提供了一种用于消息队列管理系统的消息传送方法,所述方法包括以下步骤,
[0005]接收并消费业务消息,判断所述业务消息是否消费成功;
[0006]根据判断结果,将所述业务消息对应的确认消息标记为对应的消费状态;
[0007]接收所述业务消息对应的检测消息,判断所述确认消息与所述检测消息是否匹配,根据判断结果,针对未成功消费的所述业务消息,重复以上所有步骤。
[0008]进一步,所述接收并消费业务消息后包括,发送所述业务消息对应的所述确认消息,监听并消费所述确认消息。
[0009]进一步,所述根据判断结果,将所述业务消息对应的确认消息标记为对应的消费状态,包括,
[0010]判断所述消息队列管理系统中的数据库中是否存在所述确认消息,
[0011]当判断结果为否,将所述确认消息插入所述数据库;
[0012]当判断结果为是,更新所述确认消息对应的消费标识字段。
[0013]进一步,所述更新所述确认消息对应的消费标识字段包括,
[0014]判断所述确认消息是否消费成功;
[0015]当判断结果为是,将所述确认消息中对应的消费标识字段修改为1;
[0016]当判断结果为否,将所述确认消息中对应的消费标识字段修改为0。
[0017]进一步,所述接收所述业务消息对应的检测消息,判断所述确认消息与所述检测消息是否匹配包括,
[0018]监听并消费所述检测消息,基于所述消费标识字段,判断所述确认消息是否消费成功。
[0019]进一步,所述基于所述消费标识字段,判断所述确认消息是否消费成功后,还包括,
[0020]当所述消费标识字段为0,重新投递对应的业务消息。
[0021]进一步,所述接收所述业务消息后,间隔预设的等待时间,接收所述业务消息对应
的检测消息,以消除所述业务消息传送时延造成的误差;所述等待时间根据业务完成的平均时长确定。
[0022]第二方面,本申请提供一种消息队列管理系统的消息传送系统,包括上游消息组件、消息队列服务器、下游消息组件、回调消息组件、和数据库;
[0023]所述上游消息组件,用于传送业务消息及业务消息对应的检测消息;
[0024]所述消息队列服务器,用于接收所述业务消息、所述业务消息对应的检测消息,所述业务消息对应的确认消息;
[0025]所述下游消息组件,用于监听并消费所述业务消息,传送所述业务消息对应的确认消息;
[0026]所述回调消息组件,用于监听并消费所述确认消息,判断所述确认消息是否消费成功,并根据判断结果,将所述业务消息对应的确认消息标记为对应的消费状态;还用于监听并消费所述检测消息,判断所述检测消息与所述确认消息是否匹配,并根据判断结果,针对未成功消费的所述业务消息重新发起传送请求。
[0027]第三方面,本申请提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面任一所述的方法步骤。
[0028]第四方面,本申请提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面中任一所述的方法步骤。
[0029]有益效果:
[0030]本申请通过本申请涉及
,尤其涉及一种用于消息队列管理系统的消息传送方法,包括以下步骤,接收并消费业务消息,判断所述业务消息是否消费成功;根据判断结果,将所述业务消息对应的确认消息标记为对应的消费状态;接收所述业务消息对应的检测消息,判断所述确认消息与所述检测消息是否匹配,根据判断结果,针对未成功消费的所述业务消息,重复以上所有步骤。应用本申请提供的方法,无需定时任务频繁访问数据库,大量减少数据库层面的操作;采用消息多次传送的方式作异步补偿,业务消息流转的链路与确认消息流转的链路相互独立,实现了解耦,提高了应用程序的扩展能力。
附图说明
[0031]为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0032]图1是本申请实施例1提供的方法流程示意图;
[0033]图2是本申请实施例2提供的系统结构示意图;
[0034]图3是本申请实施例3中电子结构设备示意图。
具体实施方式
[0035]下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
[0036]实施例1
[0037]实施例1提供一种用于消息队列管理系统的消息传送方法,用于提高异步消息传递的可靠性和应用程序的扩展性能,核心思想主要是将同一业务消息分别间隔一定时间重复向外传送,除第一次传送的业务消息,后续多次传送业务消息的主要目的,是为了对该业务消息是否成功消费进行二次确认。具体实现思路包括:上游消息组件将待发布的业务消息存储到数据库中,数据库随即将该业务消息传送给消息队列服务器.间隔一定预设的等待时间,如3秒后,上游消息组件再次把该业务消息传送给消息队列服务器。下游消息组件监听到该业务消息,当该业务消息第一次传送到消息队列服务器时,会对该业务消息进行初次消费,若消费成功,下游消息组件立即向消息队列服务器传送一条成功消费该业务消息的确认消息。回调消息组件用于监听消息队列服务器中的确认消息,一旦接收到消费成功的确认信息,解析该确认消息,通过确认消息中携带的关键字段,将数据库中上游消息组件对应的业务消息标记为已被成功处理。此时,上游消息组件重复上述过程,处理第二次传送的对应的业务消息,直到回调消息组件再次去数据库中标记该业务消息,由于发现该业务消息已经被标记为成功处理,因此无需通知上游组件再次发起对该条业务消息的传送,整个过程形成闭环。若整个消息传送过程中出现了异常,消息回调组件没有标记该业务消息已被成功消费,则会通知上游组件再次发起对该条业务消息的传送,重复上述过程,直至成功为止。
[0038]实施例1提供一种用于消息队列管理系统的消息传送方法,所述方法应用于上游消息组件、消息队列服务器、下游消息组件、回调消息组件、和数据库;所述方法主要包括以下步骤,
[0039]S101,接收并消费业务消息,判断所述业务消息是否消费成功;
[0040]S102,根据判断本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于消息队列管理系统的消息传送方法,其特征在于:所述方法包括以下步骤,接收并消费业务消息,判断所述业务消息是否消费成功;根据判断结果,将所述业务消息对应的确认消息标记为对应的消费状态;接收所述业务消息对应的检测消息,判断所述确认消息与所述检测消息是否匹配,根据判断结果,针对未成功消费的所述业务消息,重复以上所有步骤。2.如权利要求1所述的一种用于消息队列管理系统的消息传送方法,其特征在于,所述接收并消费业务消息后包括,发送所述业务消息对应的所述确认消息,监听并消费所述确认消息。3.如权利要求1所述的一种用于消息队列管理系统的消息传送方法,其特征在于,所述根据判断结果,将所述业务消息对应的确认消息标记为对应的消费状态,包括,判断所述消息队列管理系统中的数据库中是否存在所述确认消息,当判断结果为否,将所述确认消息插入所述数据库;当判断结果为是,更新所述确认消息对应的消费标识字段。4.如权利要求3所述的一种用于消息队列管理系统的消息传送方法,其特征在于,所述更新所述确认消息对应的消费标识字段包括,判断所述确认消息是否消费成功;当判断结果为是,将所述确认消息中对应的消费标识字段修改为1;当判断结果为否,将所述确认消息中对应的消费标识字段修改为0。5.如权利要求4所述的一种用于消息队列管理系统的消息传送方法,其特征在于,所述接收所述业务消息对应的检测消息,判断所述确认消息与所述检测消息是否匹配包括,监听并消费所述检测消息,基于所述消费标识字段,判断所述确认消息是否消费成功。6.如权利要求5所述的一种用于消息队列管理系统的消息传送方...

【专利技术属性】
技术研发人员:张征周盛周一帆曾聪许江
申请(专利权)人:唯阜德武汉科技有限公司
类型:发明
国别省市:

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

1