[发明专利]消息处理方法、装置、存储介质及设备有效
申请号: | 201911270196.5 | 申请日: | 2019-12-11 |
公开(公告)号: | CN110995851B | 公开(公告)日: | 2021-12-24 |
发明(设计)人: | 李尚声;朱甘政 | 申请(专利权)人: | 贝壳找房(北京)科技有限公司 |
主分类号: | H04L29/08 | 分类号: | H04L29/08;H04L29/06 |
代理公司: | 北京润平知识产权代理有限公司 11283 | 代理人: | 肖冰滨;王晓晓 |
地址: | 100085 北京市海淀区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 消息 处理 方法 装置 存储 介质 设备 | ||
本发明实施例提供一种消息处理方法、装置、存储介质及设备,属于计算机技术领域,解决了现有技术中在补偿发送或消费失败的分布式系统消息时,极易出现消息丢失的问题。所述方法包括:检测分布式系统消息是否处理失败;当检测到分布式系统消息处理失败时,判断分布式系统消息中标记的重试次数是否达到重试阈值;当重试次数没有达到所述重试阈值时,重新处理分布式系统消息,并更新重试次数;当重试次数达到重试阈值时,将分布式系统消息存入缓存,并间隔预设时间将缓存中的分布式系统消息存入消息中心,以便消息中心根据分布式系统消息对应的处理指令,重新处理。本发明实施例适用于对分布式系统消息的发送和消费的处理过程。
技术领域
本发明涉及计算机技术领域,具体地涉及一种消息处理方法、装置、存储介质及设备。
背景技术
在现有技术中,当生产者将消息发送到kafka集群以及消费者从kafka集群获取消息时,若是出现消息处理失败,都需要业务方自己进行消息的补偿和对账处理,极易出现消息丢失的情况。
发明内容
本发明实施例的目的是提供一种消息处理方法、装置、存储介质及设备,解决了现有技术中在补偿发送或消费失败的分布式系统消息时,极易出现消息丢失的问题,利用重试机制对上述处理失败的分布式系统消息重新进行处理,并将重试次数达到重试阈值之后的分布式系统消息存入缓存,然后间隔预设时间将缓存中的分布式系统消息存入消息中心,以便所述消息中心根据所述分布式系统消息对应的处理指令,重新处理,实现了发送消息与消费消息的一致性。
为了实现上述目的,本发明实施例提供一种消息处理方法,包括:检测分布式系统消息是否处理失败;当检测到所述分布式系统消息处理失败时,判断所述分布式系统消息中标记的重试次数是否达到重试阈值;当所述重试次数没有达到所述重试阈值时,重新处理所述分布式系统消息,并更新所述重试次数;当所述重试次数达到所述重试阈值时,将所述分布式系统消息存入缓存,并间隔预设时间将所述缓存中的分布式系统消息存入消息中心,以便所述消息中心根据所述分布式系统消息对应的处理指令,重新处理。
进一步地,当所述分布式系统消息为待发送消息时,在所述检测分布式系统消息是否处理失败的步骤之前,所述方法还包括:获取所述待发送消息,所述待发送消息中包括消息生产者的令牌、应用程序名称、路由密钥以及消息体,所述令牌中包括分区标识;提取所述待发送消息中令牌的分区标识,并判断所述分区标识是否为有序消息标识;当所述分区标识为有序消息标识时,将所述待发送消息的令牌作为其类别通过所述分区标识标记的分区进行发送;当所述分区标识不为有序消息标识时,根据所述应用程序名称、路由密钥以及所述分区标识,得到所述待发送消息的指定分区,并将所述待发送消息的令牌作为其类别通过所述指定分区进行发送。
进一步地,所述根据所述应用程序名称、路由密钥以及所述分区标识,得到所述待发送消息的指定分区的步骤,包括:根据Index=Hash(appName+routeKey)mod P,得到所述待发送消息的指定分区Index,其中,appName为所述应用程序名称,routeKey为所述路由密钥,P为所述分区标识。
进一步地,当所述分布式系统消息为待消费消息时,在所述检测分布式系统消息是否处理失败的步骤之前,所述方法还包括:获取所述待消费消息,所述待消费消息中包括消息生产者的令牌以及消息体;判断所述待消费消息中是否存在重试标识;当所述待消费消息中存在所述重试标识时,根据所述待消费消息的业务逻辑,判断所述待消费消息是否已经被消费过;当所述待消费消息已经被消费过,结束对所述待消费消息的处理;当所述待消费消息未被消费过,或所述待消费消息中不存在所述重试标识时,根据令牌与指定消费方法的映射关系,查找到所述待消费消息中的令牌对应的指定消费方法,并利用所述指定消费方法对所述待消费消息进行处理。
进一步地,当所述分布式系统消息为待消费消息时,所述当所述重试次数没有达到所述重试阈值时,重新处理所述分布式系统消息的步骤,包括:当所述重试次数没有达到所述重试阈值时,根据预设重试类型重新处理所述待消费消息,所述预设重试类型包括按次重试与延迟重试。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于贝壳找房(北京)科技有限公司,未经贝壳找房(北京)科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911270196.5/2.html,转载请声明来源钻瓜专利网。