[发明专利]一种消息队列异常的处理方法及终端有效
申请号: | 201811128370.8 | 申请日: | 2018-09-27 |
公开(公告)号: | CN109245935B | 公开(公告)日: | 2021-07-27 |
发明(设计)人: | 刘德建;吴昊;郭玉湖 | 申请(专利权)人: | 福建天泉教育科技有限公司 |
主分类号: | H04L12/24 | 分类号: | H04L12/24;H04L12/26 |
代理公司: | 福州市博深专利事务所(普通合伙) 35214 | 代理人: | 林志峥 |
地址: | 350212 福建省福州市长乐*** | 国省代码: | 福建;35 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 消息 队列 异常 处理 方法 终端 | ||
本发明公开了一种消息队列异常的处理方法及终端,通过判断失败消息队列中是否有重投递失败次数达到预设阈值的消息,若是,则判断线程中是否存在与所述消息关联的异常堆栈信息,若是,则获取所述异常堆栈信息,为所述异常堆栈信息分配唯一跟踪标识,将所述异常堆栈信息及其对应的唯一跟踪标识记录至日志中心,并向告警队列投递包含所述唯一跟踪标识的故障信息,可以及时解决代码问题引起的消息队列异常,节约时间,提高解决消息队列异常问题的效率,避免人工筛查的耗时费力问题。
技术领域
本发明涉及进程通信技术领域,尤其是涉及一种消息队列异常的处理方法及终端。
背景技术
消息队列自身提供了一些应对消息处理过程中发生异常的解决方案,目前比较常见的是以下几种技术方案:
1、消息确认机制和重投递,消费者发送一个消息应答通知消息队列已将消息接受并处理完毕,消息队列才会删掉该消息。当消费者消费失败时,会进行重新投递。但是这时若是代码问题引起的异常,则进行重投递也不能解决问题,就会造成消息阻塞。同时,大量消费失败和重投递会严重影响消息队列服务器的性能,甚至引起宕机。
2、重投递和重试策略,基于上述方案1,对消息消费失败的重试次数和重试间隔进行限定,一定程度上缓解消息队列服务器压力。但超过失败次数的消息默认会被丢弃,需要消费端进行额外处理,并且通常在问题暴露后才会被发现。
3、死信,基于消息确认机制及死信机制,消费者不论消费成功还是失败均发送一个消息应答到消息队列,避免确认机制导致消息重投递。同时,如果消费成功,结束消费过程。如果消费失败,则将消息投递到重试Exchange(消息交换机),等待消息的有效时间过期后,重试Exchange将重新将消息投递到主Exchange,消费者可以重新接收并消费消息。但此方案同样不能解决因为代码问题引起的异常。
发明内容
本发明所要解决的技术问题是:一种消息队列异常的处理方法及终端,能够解决代码问题引起的消息队列异常。
为了解决上述技术问题,本发明采用的技术方案为:
一种消息队列异常的处理方法,包括步骤:
S1、判断失败消息队列中是否有重投递失败次数达到预设阈值的消息,若是,则执行步骤S2;
S2、判断线程中是否存在与所述消息关联的异常堆栈信息,若是,则获取所述异常堆栈信息;
S3、为所述异常堆栈信息分配唯一跟踪标识,将所述异常堆栈信息及其对应的唯一跟踪标识记录至日志中心,并向告警队列投递包含所述唯一跟踪标识的故障信息。
为了解决上述技术问题,本发明采用的另一种技术方案为:
一种消息队列异常的处理终端,包括存储器、处理器及存储在存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
S1、判断失败消息队列中是否有重投递失败次数达到预设阈值的消息,若是,则执行步骤S2;
S2、判断线程中是否存在与所述消息关联的异常堆栈信息,若是,则获取所述异常堆栈信息;
S3、为所述异常堆栈信息分配唯一跟踪标识,将所述异常堆栈信息及其对应的唯一跟踪标识记录至日志中心,并向告警队列投递包含所述唯一跟踪标识的故障信息。
本发明的有益效果在于:通过获取重投递失败次数达到预设阈值的消息的异常堆栈信息并为所述异常堆栈信息分配唯一跟踪标识,向告警队列投递包含所述唯一跟踪标识的故障信息,可以及时解决代码问题引起的消息队列异常,节约时间,提高解决消息队列异常问题的效率,避免了人工筛查的耗时费力问题。
附图说明
图1为本发明实施例的一种消息队列异常的处理方法的流程图;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于福建天泉教育科技有限公司,未经福建天泉教育科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811128370.8/2.html,转载请声明来源钻瓜专利网。