[发明专利]消息处理方法及其装置、电子设备及计算机可读介质有效
申请号: | 201910622611.2 | 申请日: | 2019-07-10 |
公开(公告)号: | CN111741041B | 公开(公告)日: | 2023-05-12 |
发明(设计)人: | 林德强;何小锋;刘海锋 | 申请(专利权)人: | 北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司 |
主分类号: | H04L67/2871 | 分类号: | H04L67/2871;G06F16/27 |
代理公司: | 中科专利商标代理有限责任公司 11021 | 代理人: | 赵婷 |
地址: | 100086 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 消息 处理 方法 及其 装置 电子设备 计算机 可读 介质 | ||
本公开提供了一种消息处理方法,应用于消息发送端,包括:响应于向指定中间件发送待发送消息的发送请求,获取指定中间件的多个消息分区,其中,指定中间件包括多个消息代理,每个消息代理包括至少一个消息分区;针对多个消息分区,检测是否存在消息序列号区间以获得第一检测结果;以及基于第一检测结果,从多个消息分区中选择第一目标消息分区,以将待发送消息发送至指定中间件。此外,本公开还提供了一种消息处理装置,一种电子设备以及一种计算机可读介质。
技术领域
本公开涉及数据库领域,更具体地,涉及一种消息处理方法及其装置,电子设备及计算机可读介质。
背景技术
引入消息中间件,可以实现机房之间异构数据库的数据同步。具体地,可以在A机房部署消息的生产者,在B机房部署消息的消费者。生产者把消息发送到消息中间件的消息代理(例如Broker)或Broker组暂存起来,消费者从Broker中获取消息以执行相应的业务逻辑。数据库的日志消息有先后顺序,且先后顺序不能打乱,即要求日志消息严格按照顺序进行发送和消费,否则会导致最终结果不一致。
相关技术提供了一些消息中间件,可以实现严格顺序消息的功能。例如,采用单个消息主题的消息分区(以下简称Partition)的开源消息中间件Kafka,消息分区中的消息以先进先出的方式进行消费,保证了消息的执行顺序。采用主-从(Master-Slave)结构方式的消息中间件JMQ,一个消息队列分配两组以上的Broker组,每个Broker组由Master-Slave组成,消息的生产者和消费者各自具有独立的链表数据来动态记录各自的Broker组,当有Broker组宕机时会从发送链表中移除,若异常Broker组的消息被消费完成,则从消费链表的表头删除。
然而,在实现本公开构思的过程中,发明人发现相关技术中至少存在如下问题:只有在Broker处于宕机状态的情况下,才执行Broker的切换,实现消息的生产者的高可用,而其他影响高可用的情形,如Broker假死、Broker性能下降以及Broker与发送者网络分区,则无法实现Broker的切换。
针对相关技术中的上述问题,目前还未提出有效的解决方案。
发明内容
有鉴于此,本公开提供了一种消息处理方法及其装置,计算机系统及计算机可读介质。
本公开的一个方面提供了一种消息处理方法,应用于消息发送端,包括:响应于向指定中间件发送待发送消息的发送请求,获取上述指定中间件的多个消息分区,其中,上述指定中间件包括多个消息代理,每个消息代理包括至少一个消息分区,针对上述多个消息分区,检测是否存在消息序列号区间以获得第一检测结果,以及基于上述第一检测结果,从上述多个消息分区中选择第一目标消息分区,以将上述待发送消息发送至上述指定中间件。
根据本公开的实施例,上述基于上述第一检测结果,从上述多个消息分区中选择第一目标消息分区包括:基于上述第一检测结果,从上述多个消息分区中选择第一拟定消息分区,发送上述待发送消息至上述第一拟定消息分区以获得第一发送结果,以及基于上述第一发送结果,从上述多个消息分区中选择上述第一目标消息分区。
根据本公开的实施例,上述基于上述第一发送结果,从上述多个消息分区中选择上述第一目标消息分区包括:在上述第一发送结果指示未成功发送上述待发送消息至上述第一拟定消息分区的情况下,确定上述第一拟定消息分区的第一消息代理,从上述多个消息分区中选择除上述第一拟定消息分区之外的第二拟定消息分区,直到第二发送结果指示成功发送上述待发送消息至上述第二拟定消息分区,其中,上述第二拟定消息分区对应第二消息代理,且上述第二消息代理不同于上述第一消息代理,以及将选择的上述第二拟定消息分区作为上述第一目标消息分区。
根据本公开的实施例,上述基于上述第一检测结果,从上述多个消息分区中选择第一拟定消息分区包括:在上述第一检测结果指示不存在上述消息序列号区间的情况下,从上述多个消息分区中随机选择上述第一拟定消息分区。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司,未经北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910622611.2/2.html,转载请声明来源钻瓜专利网。