[发明专利]消息处理方法、其装置及电子设备在审
| 申请号: | 202111649763.5 | 申请日: | 2021-12-29 |
| 公开(公告)号: | CN114328388A | 公开(公告)日: | 2022-04-12 |
| 发明(设计)人: | 杨腾;赵斌 | 申请(专利权)人: | 中国电信股份有限公司 |
| 主分类号: | G06F16/11 | 分类号: | G06F16/11;G06F16/16 |
| 代理公司: | 北京康信知识产权代理有限责任公司 11240 | 代理人: | 王晓玲 |
| 地址: | 100033*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 消息 处理 方法 装置 电子设备 | ||
本申请提供了一种消息处理方法、其装置及电子设备。该方法包括:依据控制文件,确定第一位置偏移量以及第一数据文件;依据消息队列中的第一队列消息的第一数据长度以及第一位置偏移量,确定与第一队列消息对应的第二位置偏移量;将第一队列消息以及第一数据长度写入第一数据文件中;将第二位置偏移量写入控制文件中。采用上述方法,可以实现消息队列的先入先出功能,解决内存消息队列在程序异常宕机重启后会导致数据丢失的问题。
技术领域
本发明涉及数据处理领域,具体而言,涉及一种消息处理方法、其装置及电子设备。
背景技术
高并发请求访问下一般采用消息队列对消息进行缓存处理以达到流量削峰,或在跨模块消息通信时采用消息队列对消息进行排序处理。传统模式下的消息队列一般存储在内存中,当服务发生宕机时很容易导致数据丢失,这对一些安全性和数据一致性要求高的业务场景来说影响是很巨大的。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明的主要目的在于提供一种消息处理方法、其装置及电子设备,以解决现有技术中消息队列的存储易导致数据丢失的问题。
为了实现上述目的,根据本发明的一个方面,提供了一种消息处理方法,包括:依据控制文件,确定第一位置偏移量以及第一数据文件;依据消息队列中的第一队列消息的第一数据长度以及第一位置偏移量,确定与第一队列消息对应的第二位置偏移量;将第一队列消息以及第一数据长度写入第一数据文件中;将第二位置偏移量写入控制文件中。
可选地,依据消息队列中的第一队列消息的第一数据长度以及第一位置偏移量,确定与第一队列消息对应的第二位置偏移量,包括:在判断第一数据文件的大小未超出预定存储容量的情况下,依据消息队列中的第一队列消息的数据长度以及第一位置偏移量,确定与第一队列消息对应的第二位置偏移量。
可选地,上述消息处理方法还包括:在判断第一数据文件的大小超出预定存储量的情况下,生成第二数据文件,其中,第一数据文件对应第一索引号,与第二数据文件对应的索引号为第一索引号的下一个索引号;将第一队列消息以及第一数据长度写入第二数据文件。
可选地,上述消息处理方法还包括:确定至少一个在前队列消息,其中,至少一个在前队列消息为在第一队列消息之前写入第一数据文件中的全部队列消息;依据至少一个在前队列消息的数据长度,确定第一位置偏移量;将第一位置偏移量存入控制文件中。
可选地,第一数据文件与第二数据文件的存储容量相同。
可选地,上述消息处理方法还包括:将与第二数据文件对应的索引号写入控制文件中。
根据本申请实施例的另一方面,还提供了一种消息处理方法,包括:依据控制文件,确定与第一队列消息对应的第一位置偏移量以及第一数据文件;依据第一位置偏移量,从第一数据文件中读取第一队列消息。
根据本申请实施例的另一方面,还提供了一种消息处理装置,包括:第一确定模块,用于依据控制文件,确定第一位置偏移量以及第一数据文件;第二确定模块,用于依据消息队列中的第一队列消息的第一数据长度以及第一位置偏移量,确定与第一队列消息对应的第二位置偏移量;第一写入模块,用于将第一队列消息以及第一数据长度写入第一数据文件中;第二写入模块,用于将第二位置偏移量写入控制文件中。
根据本申请实施例的另一方面,还提供了一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,处理器被配置为执行指令,以实现如上述的消息处理方法。
根据本申请实施例的另一方面,还提供了一种计算机可读存储介质,当计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如上述的消息处理方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国电信股份有限公司,未经中国电信股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111649763.5/2.html,转载请声明来源钻瓜专利网。





