消息队列处理方法、装置、电子设备及存储介质制造方法及图纸

技术编号:38587627 阅读:10 留言:0更新日期:2023-08-26 23:29
本公开提供了一种消息队列处理方法、装置、电子设备及计算机可读存储介质,涉及Web前端技术领域,设置有并行存在的第一消息队列和第二消息队列,第一消息队列和第二消息队列包括同一业务消息的不同格式消息,该方法包括:第一消费者从第一消息队列获得第一消息,第一消费者抢占到分布式锁,判断是否存在与第一消息对应的目标缓存,如果存在目标缓存,第一消费者删除分布式锁结束本次消费;如果不存在目标缓存,则第一消费者对第一消息进行消费并设置目标缓存,删除分布式锁;本公开实施例保证两个消息队列系统能够并行发送消息一段时间,设置了分布式锁和缓存能够保证消息消费幂等及避免重复消费,保证正常处理业务。保证正常处理业务。保证正常处理业务。

【技术实现步骤摘要】
消息队列处理方法、装置、电子设备及存储介质


[0001]本公开涉及Web前端
,尤其涉及一种消息队列处理方法、装置、电子设备及计算机可读存储介质。

技术介绍

[0002]随着系统对消息系统传输对象的要求越来越高,经常出现将消息的解析方式进行升级迭代使得消息传输更加轻便及更加安全;但目前在原有的消息系统上进行解析改造,当消息解析方式更换后,不能正常处理消息队列的消息导致业务异常。
[0003]需要说明的是,在上述
技术介绍
部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。

技术实现思路

[0004]本公开提供一种消息队列处理方法、装置、电子设备及计算机可读存储介质,至少在一定程度上克服相关技术中消息解析方式更换后,消息队列的消息处理异常的问题。
[0005]本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
[0006]根据本公开的一个方面,提供一种消息队列处理方法,设置有并行存在的第一消息队列和第二消息队列,所述第一消息队列和所述第二消息队列包括同一业务消息的不同格式消息,所述方法包括:第一消费者从所述第一消息队列获得第一消息;所述第一消费者抢占到分布式锁,判断是否存在与所述第一消息对应的目标缓存;如果存在所述目标缓存,表明第二消费者已经从所述第二消息队列中消费与所述第一消息对应的第二消息,则所述第一消费者删除所述分布式锁,直接返回结束本次消费;如果不存在所述目标缓存,则所述第一消费者对所述第一消息进行消费,设置与所述第一消息对应的目标缓存,删除所述分布式锁。
[0007]在本公开的一个实施例中,所述第一消费者从所述第一消息队列获得第一消息包括:判断所述第一消息队列中的第一消息字符串是否为空;若否,则将所述第一消息字符串反序列处理生成所述第一消息。
[0008]在本公开的一个实施例中,所述第一消费者抢占到分布式锁,判断是否存在与所述第一消息对应的目标缓存包括:校验所述第一消息对应的业务参数是否正确;若是,则所述第一消费者抢占到分布式锁,判断是否存在与所述第一消息对应的所述目标缓存。
[0009]在本公开的一个实施例中,还包括:第二消费者从所述第二消息队列获得第二消息;判断所述第二消息队列中的第二消息字符串是否为空;若否,则将所述第二消息字符串反序列处理生成所述第二消息;校验所述第二消息对应的业务参数是否正确;若是,则所述第二消费者抢占到分布式锁,判断是否存在与所述第二消息对应的所述目标缓存。
[0010]在本公开的一个实施例中,还包括:获取所述第一消息队列或所述第二消息队列的消息处理数据;根据所述消息处理数据判断所述第一消息队列或所述第二消息队列是否
异常;若否,则切换至所述第一消息队列或所述第二消息队列单独工作。
[0011]在本公开的一个实施例中,所述消息处理数据包括:消费消息的数量、消费消息的准确度。
[0012]在本公开的一个实施例中,还包括:将所述业务消息序列化处理为不同格式的第一消息字符串及第二消息字符串;将所述第一消息字符串投递至所述第一消息队列;将所述第二消息字符串投递至所述第二消息队列。
[0013]在本公开的一个实施例中,所述将所述业务消息序列化处理为不同格式的第一消息字符串及第二消息字符串包括:将所述业务消息进行组装生成第一组装信息;将所述第一组装信息序列化为所述第一消息字符串;将所述业务消息进行组装生成第二组装信息;将所述第二组装信息序列化为所述第二消息字符串。
[0014]在本公开的一个实施例中,所述第一消息字符串或所述第二消息字符串包括:json字符串或protobuf字符串。
[0015]根据本公开的另一个方面,还提供了一种消息队列处理装置,包括:
[0016]消息获取模块,第一消费者从第一消息队列获得第一消息;
[0017]缓存判断模块,所述第一消费者抢占到分布式锁,判断是否存在与所述第一消息对应的目标缓存;
[0018]业务返回模块,如果存在所述目标缓存,表明第二消费者已经从第二消息队列中消费与所述第一消息对应的第二消息,则所述第一消费者删除所述分布式锁,直接返回结束本次消费;
[0019]业务处理模块,如果不存在所述目标缓存,则所述第一消费者对所述第一消息进行消费,设置与所述第一消息对应的目标缓存,删除所述分布式锁。
[0020]根据本公开的另一个方面,还提供了一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一项所述消息队列处理方法。
[0021]根据本公开的另一个方面,还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述的消息队列处理方法。
[0022]本公开的实施例所提供的消息队列处理方法、装置、电子设备及计算机可读存储介质,设置有并行存在的第一消息队列和第二消息队列,第一消息队列和第二消息队列包括同一业务消息的不同格式消息,第一消费者从第一消息队列获得第一消息,第一消费者抢占到分布式锁,判断是否存在与第一消息对应的目标缓存,如果存在目标缓存,表明第二消费者已经从第二消息队列中消费与第一消息对应的第二消息,则第一消费者删除分布式锁,直接返回结束本次消费;如果不存在目标缓存,则第一消费者对第一消息进行消费,设置与第一消息对应的目标缓存,删除分布式锁,保证两个消息队列系统能够并行发送消息一段时间,设置了分布式锁和缓存能够保证消息消费幂等及避免重复消费,保证正常处理业务。
[0023]应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
[0024]此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0025]图1示出本公开实施例中一种消息队列处理方法流程图;
[0026]图2示出本公开实施例中一种第一消费者消费消息方法流程图;
[0027]图3示出本公开实施例中一种第二消费者消费消息方法流程图;
[0028]图4示出本公开实施例中一种消息队列切换方法流程图;
[0029]图5示出本公开实施例中一种消息队列生产方法流程图;
[0030]图6示出本公开实施例中一种消息字符串生成方法流程图;
[0031]图7示出本公开实施例中一种消息队列处理装置示意图;
[0032]图8示出本公开实施例中一种电子设备的结构框图。
具体实施方式
[0033]现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种消息队列处理方法,其特征在于,设置有并行存在的第一消息队列和第二消息队列,所述第一消息队列和所述第二消息队列包括同一业务消息的不同格式消息,所述方法包括:第一消费者从所述第一消息队列获得第一消息;所述第一消费者抢占到分布式锁,判断是否存在与所述第一消息对应的目标缓存;如果存在所述目标缓存,表明第二消费者已经从所述第二消息队列中消费与所述第一消息对应的第二消息,则所述第一消费者删除所述分布式锁,直接返回结束本次消费;如果不存在所述目标缓存,则所述第一消费者对所述第一消息进行消费,设置与所述第一消息对应的目标缓存,删除所述分布式锁。2.根据权利要求1所述的消息队列处理方法,其特征在于,所述第一消费者从所述第一消息队列获得第一消息包括:判断所述第一消息队列中的第一消息字符串是否为空;若否,则将所述第一消息字符串反序列处理生成所述第一消息。3.根据权利要求1所述的消息队列处理方法,其特征在于,所述第一消费者抢占到分布式锁,判断是否存在与所述第一消息对应的目标缓存包括:校验所述第一消息对应的业务参数是否正确;若是,则所述第一消费者抢占到分布式锁,判断是否存在与所述第一消息对应的所述目标缓存。4.根据权利要求1所述的消息队列处理方法,其特征在于,还包括:第二消费者从所述第二消息队列获得第二消息;判断所述第二消息队列中的第二消息字符串是否为空;若否,则将所述第二消息字符串反序列处理生成所述第二消息;校验所述第二消息对应的业务参数是否正确;若是,则所述第二消费者抢占到分布式锁,判断是否存在与所述第二消息对应的所述目标缓存。5.根据权利要求所述的消息队列处理方法,其特征在于,还包括:获取所述第一消息队列或所述第二消息队列的消息处理数据;根据所述消息处理数据判断所述第一消息队列或所述第二消息队列是否异常;若否,则切换至所述第一消息队列或所述第二消息队列单独工作。6.根据权利要...

【专利技术属性】
技术研发人员:江鹏
申请(专利权)人:北京京东世纪贸易有限公司
类型:发明
国别省市:

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

1