消息处理方法、终端及存储介质技术

技术编号:27309227 阅读:14 留言:0更新日期:2021-02-10 09:29
本申请公开了一种消息处理方法、终端及存储介质。该消息处理方法包括接收管理终端发送的第一指令;响应于所述第一指令,读取第一集群的第一消息的同时,读取第二集群的第二消息;所述第一消息和所述第二消息在被所述服务器写入所述第一集群的同时被写入所述第二集群。本方案实现了对两个集群进行双写双消费,以此来保证当某个集群不可用或消息写入发生网络抖动时,业务不会丢失消息,同时还对消息排重,确保业务最终对同一条消息只消费一次。确保业务最终对同一条消息只消费一次。确保业务最终对同一条消息只消费一次。

【技术实现步骤摘要】
消息处理方法、终端及存储介质


[0001]本申请涉及消息处理领域,具体而言,涉及一种消息处理方法、终端及存储介质。

技术介绍

[0002]在通信业务中,有些业务强依赖于kafka消息,且对于有些敏感的业务,其不允许经过kafka的消息因任何意料之外的原因而导致消息丢失。当前现有的解决方案为,当因为某些不可预料的原因导致集群不可用时,kafka的维护技术人员对症下药,如kafka磁盘空间不足,则去清理磁盘,如kafka访问IP及端口被安全组禁用而无法写入消息时联系安全组来开放权限。该方案存在的问题是,有时kafka维护人员并不一定能保证百分百及时处理问题,这样对于一些敏感的业务,kafka丢失消息是不可接受的。

技术实现思路

[0003]为了解决上述问题,本申请实施例提供了一种消息处理方法、终端及存储介质。
[0004]第一方面,本申请实施例提供了一种消息处理方法,所述方法包括:
[0005]接收管理终端发送的第一指令;
[0006]响应于所述第一指令,读取第一集群的第一消息,并读取第二集群的第二消息;所述第一消息和所述第二消息在被所述服务器写入所述第一集群的同时被写入所述第二集群。
[0007]可选地,所述响应于所述第一指令,读取第一集群的第一消息,并读取第二集群的第二消息之后,还包括:
[0008]接收缓存终端发送的第二指令;
[0009]响应于所述第二指令,删除目标消息;所述目标消息为与所述缓存终端的历史监听记录中的历史消息重复的消息。
[0010]可选地,所述监听历史记录包含所述历史消息的识别信息,所述目标消息的识别信息与所述历史消息的识别信息相同。
[0011]第二方面,本申请提供了一种消息处理方法,所述方法包括:
[0012]监听用户终端接收的消息;所述消息包含第一消息与第二消息中至少一条,所述第一消息由所述用户终端从第一集群中读取,所述第二消息由所述用户终端从第二集群中读取,所述消息在被所述服务器写入所述第一集群的同时被写入所述第二集群;
[0013]根据历史监听记录确定所述消息是否与历史消息重复;
[0014]在所述消息与所述历史消息重复的情况下,向所述用户终端发送第二指令,所述第二指令用于指示所述用户终端删除所述消息。
[0015]可选地,所述历史监听记录包含所述历史消息的识别信息;
[0016]所述根据历史监听记录确定所述消息是否与历史消息重复,包括:
[0017]获取所述消息的识别信息;
[0018]从所述历史监听记录中查找是否存在识别信息与所述消息的识别信息相同的所
述历史消息;
[0019]所述在所述消息与所述历史消息重复的情况下,向所述用户终端发送第二指令,包括:
[0020]在所述消息的识别信息与所述历史消息的识别信息重复的情况下,向所述用户终端发送第二指令。
[0021]第三方面,本申请实施例提供了一种用户终端,所述终端包括:
[0022]接收模块,用于接收所述管理终端发送的第一指令;
[0023]读取模块,用于响应于所述第一指令,读取所述第一集群的第一消息的同时,读取所述第二集群的第二消息;所述第一消息和所述第二消息在被所述服务器写入所述第一集群的同时被写入所述第二集群。
[0024]第四方面,本申请实施例提供了一种用户终端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面或第一方面的任意一种可能的实现方式提供的方法的步骤。
[0025]第五方面,本申请实施例提供了一种缓存终端,所述缓存终端包括:
[0026]监听模块,用于监听所述用户终端接收的消息;所述消息包含第一消息与第二消息中至少一条,所述第一消息由所述用户终端从所述第一集群中读取,所述第二消息由所述用户终端从所述第二集群中读取,所述消息在被所述服务器写入所述第一集群的同时被写入所述第二集群;
[0027]判断模块,用于根据历史监听记录确定所述消息是否与历史消息重复;
[0028]发送模块,用于在所述消息与所述历史消息重复的情况下,向所述用户终端发送第二指令,所述第二指令用于指示所述用户终端删除所述消息。
[0029]第六方面,本申请实施例提供了一种缓存终端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第二方面或第二方面的任意一种可能的实现方式提供的方法的步骤。
[0030]第七方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面或第一方面的任意一种可能的实现方式提供的方法。
[0031]第八方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如第二方面或第二方面的任意一种可能的实现方式提供的方法。
[0032]在本申请一个或多个实施例中,设立有第一集群与第二集群两个集群,第二集群冗余写入有已写入第一集群的消息。用户终端在接收到管理终端发送的第一指令后,读取第一集群与第二集群中的消息。由于第二集群中冗余写入有已经写入第一集群中的消息,当用户终端同时读取第一集群与第二集群的消息时,用户终端可能会对同一份消息多消费了一次。故设置由redis对用户终端读取的消息进行幂等排重,将多余的消息删除。通过上述过程实现对两个集群进行双写双消费,并对消费的消息进行幂等排重来保证某个集群临时不可用时,kafka消息传输业务仍不会丢失消息。
附图说明
[0033]为了更清楚地说明本申请实施例中的技术方案,下面将对实施例中所需使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0034]图1为本申请实施例提供的一种消息处理系统的架构示意图;
[0035]图2为本申请实施例提供的一种消息处理方法的流程示意图;
[0036]图3为本申请实施例提供的又一种消息处理方法的流程示意图;
[0037]图4为本申请实施例提供的一种用户终端的结构示意图;
[0038]图5为本申请实施例提供的一种缓存终端的结构示意图;
[0039]图6为本申请实施例提供的又一种用户终端的结构示意图;
[0040]图7为本申请实施例提供的又一种缓存终端的结构示意图。
具体实施方式
[0041]下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
[0042]在下述介绍中,术语“第一”、“第二”仅为用于描述的目的,而不能理解为指示或暗示相对重要性。下述介绍提供了本申请的多个实施例,不同实施例之间可以替换或者合并组合,因此本申请也可认为包含所记载的相同和/或不同实施例的所有可能组合。因而,如果一个实施例包含特征本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种消息处理方法,其特征在于,所述方法包括:接收管理终端发送的第一指令;响应于所述第一指令,读取第一集群的第一消息,并读取第二集群的第二消息;所述第一消息和所述第二消息在被服务器写入所述第一集群的同时被写入所述第二集群。2.根据权利要求1所述的方法,其特征在于,所述响应于所述第一指令,读取第一集群的第一消息,并读取第二集群的第二消息之后,还包括:接收缓存终端发送的第二指令;响应于所述第二指令,删除目标消息;所述目标消息为与所述缓存终端的历史监听记录中的历史消息重复的消息。3.根据权利要求2所述的方法,其特征在于,所述监听历史记录包含所述历史消息的识别信息,所述目标消息的识别信息与所述历史消息的识别信息相同。4.一种消息处理方法,其特征在于,所述方法包括:监听用户终端接收的消息;所述消息包含第一消息与第二消息中至少一条,所述第一消息由所述用户终端从第一集群中读取,所述第二消息由所述用户终端从第二集群中读取,所述消息在被服务器写入所述第一集群的同时被写入所述第二集群;根据历史监听记录确定所述消息是否与历史消息重复;在所述消息与所述历史消息重复的情况下,向所述用户终端发送第二指令,所述第二指令用于指示所述用户终端删除所述消息。5.根据权利要求4所述的方法,其特征在于,所述历史监听记录包含所述历史消息的识别信息;所述根据历史监听记录确定所述消息是否与历史消息重复,包括:获取所述消息的识别信息;从所述历史监听记录中查找是否存在识别信息与所述消息的识别信息相同的所述历史消息;所述在所述消息与所述历史消息重复的情况下,...

【专利技术属性】
技术研发人员:石鹏宋磊
申请(专利权)人:北京大米科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1