[发明专利]一种消息队列的处理方法、介质、设备和系统有效
申请号: | 202111065794.6 | 申请日: | 2021-09-13 |
公开(公告)号: | CN113505012B | 公开(公告)日: | 2021-11-19 |
发明(设计)人: | 王虓 | 申请(专利权)人: | 北京宇信科技集团股份有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54;G06F9/52 |
代理公司: | 北京卓岚智财知识产权代理事务所(特殊普通合伙) 11624 | 代理人: | 沈煜华 |
地址: | 100044 北京市海淀区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 消息 队列 处理 方法 介质 设备 系统 | ||
1.一种消息队列的处理方法,应用于消息队列设备,其特征在于,所述方法包括:
根据消息生产端发送的分区名,获取写分段索引的值;
根据所述分区名从写分段索引的Hash中查询得到分段号,并且使用所述分区名和所述分段号拼接获得存储键名;
根据所述存储键名写入消息内容,并确定所述消息内容对应的消息时间序号entryId;
向所述消息队列的预设数据结构中写入标记,所述标记用于指示所述消息内容未在所述消息队列的主节点和从节点之间完成同步;其中,所述消息队列包括主节点和从节点;
判断已写入的消息内容个数是否达到分段的预设长度;
当已写入的消息内容个数达到分段的预设长度时,将所述写分段索引的值加1;
获取消息队列的主节点复制偏移量;
向所述消息生产端返回所述entryId和所述消息队列的主节点复制偏移量。
2.根据权利要求1所述的方法,其特征在于,在所述的向所述消息生产端返回所述entryId和所述消息队列的主节点复制偏移量之后,还包括:
获取消息队列的运行信息;
根据所述消息队列的运行信息,判断是否发生了主节点故障切换;
如果发生了主节点故障切换,进一步根据从节点复制偏移量和主节点复制偏移量判断复制偏移量是否未同步;
如果复制偏移量未同步,则确定消息已丢失,向所述消息生产端返回写入失败信息;
如果未发生主节点故障切换,则确定主节点正常,依次获取每个待检查的从节点的复制偏移量,判断每个待检查的从节点的复制偏移量是否已经完成复制;
当任意待检查的从节点的复制偏移量已经完成复制时,向所述消息生产端返回写入成功信息。
3.根据权利要求2所述的方法,其特征在于,在所述的当任意待检查的从节点的复制偏移量已经完成复制时,向所述消息生产端返回成功信息之后,还包括:
拼接租约锁键名;
根据租约锁键名,判断租约锁是否存在;
如果所述租约锁不存在,则设置所述租约锁的值为客户端信息,并且设置所述租约锁的过期时间为指定时长;
如果所述租约锁存在,则进一步判断所述租约锁与客户端信息是否相同;
当所述租约锁与所述客户端信息相同时,更新所述租约锁的过期时间;
当所述租约锁与所述客户端信息不相同时,确定所述租约锁已被占用,输出获取所述租约锁失败的指示信息。
4.根据权利要求3所述的方法,其特征在于,还包括:
判断是否成功获取所述租约锁;
如果已成功获取所述租约锁,则获取读分段索引;
将分区名和分段号拼接成存储键名;
获取当前处理的偏移量;
向消费者端返回所述存储键名和所述当前处理的偏移量。
5.根据权利要求4所述的方法,其特征在于,在所述的返回所述键名和所述当前处理的偏移量之后,还包括:
检查租约锁的值是否与客户端信息相同,判断所述租约锁是否被其它客户端获取;
当所述租约锁未被其它客户端获取时,更新偏移量的值;
当所述租约锁已被其它客户端获取时,输出异常。
6.根据权利要求1所述的方法,其特征在于,所述消息队列包括:远程字典服务Redis;所述的根据所述存储键名写入消息内容,并确定所述消息内容对应的消息时间序号entryId,具体包括:
根据所述存储键名将所述消息内容包含的消息体写入到Redis的Stream数据结构中;其中,所述消息体包括多个键值对;
接收返回的与所述消息体对应的消息时间序号entryId;其中,所述entryId包括时间戳和序号。
7.根据权利要求2所述的方法,其特征在于,所述的根据从节点复制偏移量和主节点复制偏移量判断复制偏移量是否未同步,具体包括:
当从节点复制偏移量大于或者等于主节点复制偏移量时,确定复制偏移量同步。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京宇信科技集团股份有限公司,未经北京宇信科技集团股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111065794.6/1.html,转载请声明来源钻瓜专利网。