消息延迟消费方法及相关产品技术

技术编号:33135039 阅读:14 留言:0更新日期:2022-04-17 00:58
本申请实施例公开了一种消息延迟消费方法及相关产品。该方法包括:第一服务器从消息队列的预设主题中消费待消费延迟消息,并将待消费延迟消息存储到预设数据库,其中,待消费延迟消息是由第二服务器发布到kafka队列的预设主题中的,原始消息的原始主题以及原始消息的延迟时间;第一服务器周期性的扫描预设数据库,从预设数据库中获取出目标延迟消息,其中,目标延迟消息为预设数据库中当前存储的所有延迟消息中延迟时间到达的延迟消息;第一服务器获取目标延迟消息的目标主题,并将目标延迟消息中的原始消息发回到消息队列中的目标主题,以便第三服务器从目标主题中消费目标延迟消息中的原始消息。消息中的原始消息。消息中的原始消息。

【技术实现步骤摘要】
消息延迟消费方法及相关产品


[0001]本申请涉及信息处理
,具体涉及一种消息延迟消费方法及相关产品。

技术介绍

[0002]kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写,是一种高吞吐量的分布式发布订阅消息系统。由于其具有更好的吞吐量,内置的分区,多副本和容错功能,这使其成为大规模消息处理应用程序的良好解决方案。
[0003]但是在某些业务场景下,在一个事务内的最后一步是发送kafka消息,但是这个事物确未提交,消费端收到通知后读取数据并做处理。但是由于kafka几乎是即时收到消息,导致偶尔出现“在发完kafka和提交事务的间隙,消费端收到了消息并读取到了事务提交前的数据”,导致消息处理失败。
[0004]因此如何解决由于kafka的即时性带来的消息处理失败问题是目前亟待解决的问题。

技术实现思路

[0005]本申请实施例提供了一种消息延迟消费方法及相关产品,通过延迟消费kafka中的消息,解决了由于kafka的即时性带来的消息处理失败问题。
[0006]第一方面,本申请实施例提供一种消息延迟消费方法,应用于延迟消费系统的第一服务器,其中,所述延迟消费系统还包括第二服务器和第三服务器,其中,所述第一服务器位于延迟服务端、所述第二服务器位于生产端以及所述第三服务器位于消费端;所述方法包括:
[0007]所述第一服务器从消息队列的预设主题中消费待消费延迟消息,并将所述待消费延迟消息存储到预设数据库,其中,所述待消费延迟消息是由所述第二服务器发布到所述消息队列的所述预设主题中的,所述待消费延迟消息包括原始消息、所述原始消息的原始主题以及所述原始消息的延迟时间;
[0008]所述第一服务器周期性的扫描所述预设数据库,从所述预设数据库中获取目标延迟消息,其中,目标延迟消息为所述预设数据库中当前存储的所有延迟消息中延迟时间小于或等于第一时长的延迟消息,其中,所述第一时长为当前时刻和所述第一服务器消费所述目标延迟消息的时刻之间的差值;
[0009]所述第一服务器获取所述目标延迟消息的目标主题,并将所述目标延迟消息中的原始消息发回到所述消息队列中的所述目标主题,以便所述第三服务器从所述目标主题中消费所述目标延迟消息中的原始消息。
[0010]第二方面,本申请实施例提供一种服务器,所述服务器应用于延迟消费系统,所述延迟消费系统还包括第二服务器和第三服务器,其中,所述服务器位于延迟服务端、所述第二服务器位于生产端以及所述第三服务器位于消费端;所述服务器包括收发单元和获取单元;
[0011]所述收发单元,用于从消息队列的预设主题主题中消费待消费延迟消息,并将所述待消费延迟消息存储到预设数据库,其中,所述待消费延迟消息是由所述第二服务器发布到所述消息队列的所述预设主题中的,所述待消费延迟消息包括原始消息、所述原始消息的原始主题以及所述原始消息的延迟时间;
[0012]所述处理单元,用于周期性的扫描所述预设数据库,从所述预设数据库中获取目标延迟消息,其中,目标延迟消息为所述预设数据库中当前存储的所有延迟消息中延迟时间小于或等于第一时长的延迟消息,其中,所述第一时长为当前时刻和所述第一服务器消费所述目标延迟消息的时刻之间的差值;获取所述目标延迟消息的目标主题;
[0013]所述收发单元,还用于将所述目标延迟消息中的原始消息发回到所述消息队列中的所述目标主题,以便所述第三服务器从所述目标主题中消费所述目标延迟消息中的原始消息。
[0014]第三方面,本申请实施例提供一种电子设备,包括:处理器,所述处理器与存储器相连,所述存储器用于存储计算机程序,所述处理器用于执行所述存储器中存储的计算机程序,以使得所述电子设备执行如第一方面所述的方法。
[0015]第四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序使得计算机执行如第一方面所述的方法。
[0016]第五方面,本申请实施例提供一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机可操作来使计算机执行如第一方面所述的方法。
[0017]实施本申请实施例,具有如下有益效果:
[0018]可以看出,在本申请实施例中,第二服务器先将该原始消息封装为待消费延迟消息,并将该待消费延迟消息发送到消息队列的预设主题,然后第一服务器从该预设主题中消费该待消费延迟消息,并在延迟时间到达时,即到达了需要消费该待消费延迟消息的时刻,将该原始消息返回到对应的目标主题,这个时候第三服务器才会去目标主题中消费该原始消息,从而实现延迟消费该原始消息,进而保证成功消费原始消息,提高消息和事务处理成功率。
附图说明
[0019]为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0020]图1为本申请实施例提供的一种延迟消费系统的示意图;
[0021]图2为本申请实施例提供的一种消息延迟消费方法的流程示意图;
[0022]图3为本申请实施例提供的一种确定延迟时间方法的流程示意图;
[0023]图4为本申请实施例提供的一种服务器的功能单元组成框图;
[0024]图5为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
[0025]下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0026]本申请的说明书和权利要求书及所述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0027]在本文中提及“实施例”意味着,结合实施例描述的特定特征、结果或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
[0028]参阅图1,图1为本申请实施例提供的一种延迟消费系统。如图1所示,延迟消费系统包括第一服务器101、第二服务器102以及第三服务器103,其中,第一服务器101位于延迟服务端、第二服务器102位于生产端以及第三服务器103消费端本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种消息延迟消费方法,其特征在于,应用于延迟消费系统的第一服务器,其中,所述延迟消费系统还包括第二服务器和第三服务器,其中,所述第一服务器位于延迟服务端、所述第二服务器位于生产端以及所述第三服务器位于消费端;所述方法包括:所述第一服务器从消息队列的预设主题中消费待消费延迟消息,并将所述待消费延迟消息存储到预设数据库,其中,所述待消费延迟消息是由所述第二服务器发布到所述消息队列的所述预设主题中的,所述待消费延迟消息包括原始消息、所述原始消息的原始主题以及所述原始消息的延迟时间;所述第一服务器周期性的扫描所述预设数据库,从所述预设数据库中获取目标延迟消息,其中,目标延迟消息为所述预设数据库中当前存储的所有延迟消息中延迟时间小于或等于第一时长的延迟消息,其中,所述第一时长为当前时刻和所述第一服务器消费所述目标延迟消息的时刻之间的差值;所述第一服务器获取所述目标延迟消息的目标主题,并将所述目标延迟消息中的原始消息发回到所述消息队列中的所述目标主题,以便所述第三服务器从所述目标主题中消费所述目标延迟消息中的原始消息。2.根据权利要求1所述的方法,其特征在于,所述消费待消费延迟消息是所述第二服务器通过执行以下步骤得到的:所述第二服务器对生产者生产的所述原始消息进行类型识别,确定所述原始消息为需要进行延迟消费的消息;所述第二服务器对所述原始信息进行主题识别,得到所述原始消息的原始主题;所述第二服务器根据所述生产者在多个特征维度下的多个用户特征数据,确定所述原始消息的延迟时间;所述第二服务器将所述原始消息、所述原始消息的原始主题以及所述原始消息的延迟时间封装为所述待消费延迟消息。3.根据权利要求2所述的方法,其特征在于,所述第二服务器根据所述生产者在多个特征维度下的多个用户特征数据,确定所述原始消息的延迟时间,包括:所述第二服务器根据所述生产者在所述多个特征维度下的多个用户特征数据以及每个候选用户在所述多个特征维度下的多个用户特征数据,从多个候选用户中获取多个目标用户,其中,所述多个目标用户中的任意一个所述目标用户与所述生产者至少在一个所述特征维度下具有相同的用户特征数据;所述第二服务器根据所述生产者在所述多个特征维度下的多个用户特征数据,以及每个所述目标用户在所述多个特征维度下的多个用户特征数据,确定所述原始消息的延迟时间。4.根据权利要求3所述的方法,其特征在于,所述第二服务器根据所述生产者在所述多个特征维度下的多个用户特征数据,以及每个所述目标用户在所述多个特征维度下的多个用户特征数据,确定所述原始消息的延迟时间,包括:所述第二服务器通过语义提取模型对所述生产者在所述多个特征维度下的多个用户特征数据进行向量化,得到所述生产者的第一特征向量;所述第二服务器通过所述语义提取模型分别对每个所述目标用户在所述多个特征维度下的多个用户特征数据进行向量化,得到每个所述目标用户的第二特征向量;
所述第二服务器基于所述生产者的权重以及每个所述目标用户的权重,对所述生产者的第一特征向量以及每个所述目标用户的第二特征向量进行加权,得到目标特征向量;所述第二服务器将所述目标特征向量输入到多层感知器中进行时间预测,得到所述原始消息的延迟时间。5.根据权利要求3或4所述的方法,其特征在于,所述第二服务器基于所述生产者的权重以及每个所述目标用户的权重,对所述生产者的第一特征向量以及每个所述目标用户的第二特征向量进行加权之前,所述方法还包括:所述...

【专利技术属性】
技术研发人员:舒司廷
申请(专利权)人:平安普惠企业管理有限公司
类型:发明
国别省市:

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

1