[发明专利]一种消息处理方法、处理器和存储介质在审
申请号: | 202210367221.7 | 申请日: | 2022-04-08 |
公开(公告)号: | CN114860473A | 公开(公告)日: | 2022-08-05 |
发明(设计)人: | 李亚平;翟锦修;覃文轩 | 申请(专利权)人: | 天工信创(广州)信息科技有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54;H04L67/01 |
代理公司: | 广州立凡知识产权代理有限公司 44563 | 代理人: | 龙艳华 |
地址: | 510000 广东省广州*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 消息 处理 方法 处理器 存储 介质 | ||
本申请涉及一种消息处理方法、处理器和存储介质。所述方法包括:对多个消息进行配置,以确定每个消息的生产端和消费端;将多个消息中的目标消息持久化到消息表,再将目标消息投递至消息中间件,以通过消息中间件将目标消息发送至对应的消费端;目标消息的消费端在接收到目标消息后,将目标消息持久化到消息表,再对目标消息进行确认与消费。
技术领域
本申请涉及计算机技术领域,特别是涉及一种消息处理方法、处理器和存储介质。
背景技术
在软件开发行业中,大部分的软件架构都是基于微服务实现的。微服务是一种云原生架构方法,在单个应用中包含众多松散耦合而且可单独部署的小型组件或服务。这些服务通常拥有自己的技术栈,包括数据库和数据管理模型;通过接口、事件流和消息代理的组合相互通信;以及按照业务能力进行组织,具有通常称为有界上下文的服务分隔线。消息代理通常都是基于消息队列协议,一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间件不同产品,不同的开发语言等条件的限制。
现有技术中,消息队列协议实现厂商,几乎都是把消息持久化在磁盘或者为了快速响应就关闭持久化功能,以Rabbit MQ为例,如果消息持久化在Exchange 不持久化在Queue仍然面临着消息丢失的可能,消息在消费的时候如果没有及时确认,那么就很容易造成消息堆积甚至会压垮消息中间件,又或者现在的消息在执行的过程中很难追踪到哪一步,比如说有一个长事务的消息,有1~7步,前面执行成功了3,那么下次在重新执行的时候是可以直接从第4步开始等,目前的消息厂商对于这些功能都是没有很好的支持。
发明内容
基于此,有必要针对上述技术问题,提供一种消息处理方法、处理器和存储介质。
为了实现上述目的,本发明第一方面提供一种消息处理方法,包括:
对多个消息进行配置,以确定每个消息的生产端和消费端;
将多个消息中的目标消息持久化到消息表,再将目标消息投递至消息中间件,以通过消息中间件将目标消息发送至对应的消费端;
目标消息的消费端在接收到目标消息后,将目标消息持久化到消息表,再对目标消息进行确认与消费。
在本申请的实施例中,方法还包括:在目标消息的消费端在接收到目标消息后之后,若MongoDB中已经存在目标消息的消息记录,则不执行将目标消息持久化到消息表的步骤。
在本申请的实施例中,其特征在于,对多个消息进行配置还包括:确定每个消息的锁定key;根据锁定key生成与每个消息对应的分布式锁,以通过调用分布式锁来发送消息。
在本申请的实施例中,对多个消息进行确认与消费包括:通过指定的消费协议对目标消息进行确认与消费。
在本申请的实施例中,指定的消费协议包括HTTP协议、BEAN调用、AMQP 协议中的任意一者。
在本申请的实施例中,对多个消息进行配置还包括:在预设服务的访问量超出预设阈值的情况下,将多个消息配置为不消费;方法还包括:目标消息的消费端在接收到目标消息后,将目标消息持久化到消息表,再对目标消息进行确认;在预设服务的访问量低于预设阈值的情况下,对确认后的目标消息进行消费。
在本申请的实施例中,方法还包括:在通过消息中间件将目标消息发送至对应的消费端失败的情况下,再次将目标消息加入至消息队列中;在消费表中找到发送失败的目标消息,并将发送失败的目标消息重新投递至消息中间件。
在本申请的实施例中,消息中间件为Rabbit MQ。
本发明第二方面提供一种处理器,被配置成执行上述的消息处理方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于天工信创(广州)信息科技有限公司,未经天工信创(广州)信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210367221.7/2.html,转载请声明来源钻瓜专利网。