[发明专利]消息管理方法、装置及电子设备在审
申请号: | 201810505101.2 | 申请日: | 2018-05-24 |
公开(公告)号: | CN108809855A | 公开(公告)日: | 2018-11-13 |
发明(设计)人: | 王卫解;乜东彬;付志耀;其他发明人请求不公开姓名 | 申请(专利权)人: | 北京三快在线科技有限公司 |
主分类号: | H04L12/863 | 分类号: | H04L12/863;H04L29/08 |
代理公司: | 北京博思佳知识产权代理有限公司 11415 | 代理人: | 林祥 |
地址: | 100080 北京市海*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 缓存 目标消息 消息队列 偏移量 装置及电子设备 消息管理 客户端 未处理 处理状态信息 消息处理状态 触发条件 记录消息 信息上报 再次启动 拉取 预设 队列 上报 响应 申请 服务 | ||
本申请提供一种消息管理方法、装置及电子设备,所述方法的一具体实施方式包括:将从Kafka消息队列中获取的多个待处理的目标消息进行缓存;处理缓存的所述目标消息,并记录消息处理状态信息;响应于满足预设的触发条件,基于当前的所述消息处理状态信息上报针对所述Kafka消息队列的偏移量;其中,所述偏移量在所述Kafka消息队列中对应的位置之前的目标消息均已被处理完成。该实施方式在客户端关闭时,如果未处理完缓存中的消息,当客户端再次启动后,仍然可以根据上次上报给服务端的偏移量从队列中拉取上次未处理完成的消息,从而避免了消息的丢失。
技术领域
本申请涉及互联网技术领域,特别涉及一种消息管理方法、装置及电子设备。
背景技术
Kafka是一个开源流处理平台,是一种高吞吐量的分布式发布订阅消息系统,可以用于处理网站中的动作流数据。在Kafka系统中,服务端可以将待处理的消息存储到队列中,客户端可以从服务端拉取队列中的消息,并存入缓存。目前来说,客户端在接收到待处理的消息后,会向服务端发送下次从队列中拉取消息的起始位置。如果客户端关闭,则下次启动后,可以接着从队列中的该起始位置拉取消息。然而,在客户端关闭时,如果未处理完缓存中的消息,则缓存中的数据就会丢失。当客户端再次启动后,只能根据上次发送给服务端的起始位置从队列中拉取新的消息,而无法找回未处理完成的消息,从而导致消息的丢失。
发明内容
为了解决上述技术问题之一,本申请提供一种消息管理方法、装置及电子设备。
根据本申请实施例的第一方面,提供一种消息管理方法,包括:
将从Kafka消息队列中获取的多个待处理的目标消息进行缓存;
处理缓存的所述目标消息,并记录消息处理状态信息;
响应于满足预设的触发条件,基于当前的所述消息处理状态信息上报针对所述Kafka消息队列的偏移量;其中,所述偏移量在所述Kafka消息队列中对应的位置之前的目标消息均已被处理完成。
可选的,所述将从Kafka消息队列中获取的多个待处理的目标消息进行缓存,包括:
确定所述目标消息在所述Kafka消息队列中所对应的队列序号;
将所述目标消息与对应的队列序号进行关联并存储至缓存;
所述记录消息处理状态信息,包括:
基于所述目标消息对应的队列序号记录消息处理状态信息。
可选的,所述基于所述目标消息对应的队列序号记录消息处理状态信息,包括:
记录被处理完成的目标信息所对应的队列序号,得到消息处理状态信息。
可选的,所述基于当前的所述消息处理状态信息上报针对所述Kafka消息队列的偏移量,包括:
从所述消息处理状态信息记录的队列序号中,按照从小到大的顺序选取首个与之后的队列序号不连续的队列序号;
根据所述首个与之后的队列序号不连续的队列序号确定针对所述Kafka消息队列的偏移量,并上报所述偏移量。
可选的,所述预设的触发条件包括以下任意一项或多项:
距离预设时刻的时间间隔大于或等于预设时长;
在所述预设时刻之后连续处理完成的消息数量大于或等于预设数量;
确定指定客户端即将关闭;以及
确定即将对所述Kafka消息队列进行重新分配。
根据本申请实施例的第二方面,提供一种消息管理装置,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京三快在线科技有限公司,未经北京三快在线科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810505101.2/2.html,转载请声明来源钻瓜专利网。