CN116820795A - 加快消息处理速度并维持处理顺序的方法及系统 - Google Patents
加快消息处理速度并维持处理顺序的方法及系统 Download PDFInfo
- Publication number
- CN116820795A CN116820795A CN202310414080.4A CN202310414080A CN116820795A CN 116820795 A CN116820795 A CN 116820795A CN 202310414080 A CN202310414080 A CN 202310414080A CN 116820795 A CN116820795 A CN 116820795A
- Authority
- CN
- China
- Prior art keywords
- message
- hash
- physical
- queues
- message queues
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000012545 processing Methods 0.000 title claims abstract description 97
- 238000000034 method Methods 0.000 title claims abstract description 47
- 238000004364 calculation method Methods 0.000 claims abstract description 48
- 238000013507 mapping Methods 0.000 claims abstract description 38
- 230000008859 change Effects 0.000 claims description 108
- 238000010276 construction Methods 0.000 claims description 3
- 230000010354 integration Effects 0.000 description 11
- 230000008569 process Effects 0.000 description 6
- 230000009471 action Effects 0.000 description 5
- 238000000605 extraction Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明涉及一种加快消息处理速度并维持处理顺序的方法及系统。该方法包括构建一致性哈希环;消息服务器根据业务需求确定若干物理消息队列;对若干物理消息队列分别进行哈希计算,并全部映射至一致性哈希环上;对业务产生的消息进行哈希计算,并映射至一致性哈希环上对应的物理消息队列中。实现解决了同一个消息对象先后两次操作处理顺序出错的问题,解决在特殊业务场景中产生数据不一致,并发冲突,数据库死锁等问题。
Description
技术领域
本发明涉及消息顺序处理技术领域,具体涉及一种加快消息处理速度并维持处理顺序的方法及系统。
背景技术
消息队列是在多个不同的应用之间实现相互通信的一种异步传输模式,相互通信的应用可以分布于同一台服务器上,也可以分布于相连的网络空间中的任一位置。它的实现原理是:消息的发送者把自己想要发送的信息放入一个容器中(我们称之为Message),然后把它保存至一个系统公用空间的消息队列(Message Queue)中;本地或者是异地的消息接收程序再从该队列中取出发给它的消息进行处理。随着不同应用的业务量的不断增加,应用之间的通信量也在不断扩大,需要处理的消息量不断扩大。这种情况使得消息队列的消息的发送者的发送速度大于消息接收程序提取处理的速度,导致消息都积压在消息队列,数据处理不及时的问题,相互通信的应用之间消息响应时间长。为了解决一问题,本申请采用了增加消息队列的方式来增加进程,通过多进程对相应的业务进行处理,加快数据处理速度。但由于多消息队列的设置,会出现同一个消息对象的业务可能会进入不同的消息队列中进行排队,而不同消息队列的吞吐量、存储的待处理消息的数量、消息处理速度都不相同,这会出现同一个消息对象先后两次操作处理顺序出错的情况,即无法保证消息的顺序性,有可能后进队列的先被消费了,在特殊业务场景中就会产生数据不一致,并发冲突,数据库死锁等问题。
发明内容
为解决上述问题,本发明提供了一种加快消息处理速度并维持处理顺序的方法及系统。通过一致性哈希算法实现同一个消息对象推送到同一个消息队列中,这样就很好的解决了多个消息队列所产生的问题。
具体的,本发明采用以下技术方案予以实现。
本发明的一方面提供了一种加快消息处理速度并维持处理顺序的方法,该加快消息处理速度并维持处理顺序的方法包括如下步骤:
构建一致性哈希环,所述一致性哈希环由自首端至尾端的若干递增哈希值组成,且首端与尾端相连接;
消息服务器根据业务需求确定若干物理消息队列;
对所述若干物理消息队列分别进行哈希计算,并全部映射至所述一致性哈希环上;
对所述业务产生的消息进行哈希计算,并映射至所述一致性哈希环上对应的物理消息队列中。
根据本发明一实施例,每个所述物理消息队列分别包括若干虚拟消息队列。
根据本发明一实施例,所述若干虚拟消息队列分别进行哈希计算获得若干虚拟消息队列哈希值,并根据所述若干虚拟消息队列哈希值分别将所述若干虚拟消息队列映射在所述一致性哈希环对应的位置上。
根据本发明一实施例,对所述若干物理消息队列分别进行哈希计算,并全部映射至所述一致性哈希环上具体包括:
对所述若干物理消息队列分别确定唯一名称;
通过对每个物理消息队列的名称分别进行哈希计算获得若干物理消息队列哈希值;
根据所述若干物理消息队列哈希值分别将所述若干物理消息队列映射在所述一致性哈希环对应的位置上。
根据本发明一实施例,对所述业务产生的消息进行哈希计算,并映射至所述一致性哈希环上对应的物理消息队列中具体包括如下步骤:
根据所述业务生成若干消息;
分别对生成的所述消息的唯一标识进行哈希计算获得若干消息哈希值;
所述消息哈希值分别与映射在所述一致性哈希环对应的位置上的所述若干物理消息队列哈希值和/或所述若干虚拟消息队列哈希值进行比较;
根据比较结果确定所述消息对应的消息队列。
根据本发明一实施例,所述根据比较结果确定所述消息对应的消息队列具体包括:确定所述消息哈希值自所述一致性哈希环首尾不相邻的一侧自首端至尾端方向上遇到的第一个消息队列中进行排队。
本发明的另一方面提供了一种加快消息处理速度并维持处理顺序的系统,应用上述任意一项所述的一种加快消息处理速度并维持处理顺序的方法。该加快消息处理速度并维持处理顺序的系统包括:
哈希环构建模块,用于构建一致性哈希环;
消息队列确定模块,用于消息服务器根据业务需求确定若干物理消息队列;
消息队列计算模块,用于对所述若干物理消息队列分别进行哈希计算,并全部映射至所述一致性哈希环上;
消息计算模块,用于对所述业务产生的消息进行哈希计算,并映射至所述一致性哈希环上对应的物理消息队列中。
本发明的另一方面提供了一种加快消息处理速度并维持处理顺序的方法,应用于加快会员积分变更处理速度并维持会员积分变更的处理顺序。该加快消息处理速度并维持处理顺序的方法包括如下步骤:
构建一致性哈希环,所述一致性哈希环由自首端至尾端的若干递增哈希值组成,且首端与尾端相连接;
消息服务器根据会员积分变更数据处理量确定若干物理积分变更消息队列;
对所述若干物理积分变更消息队列分别进行哈希计算,并全部映射至所述一致性哈希环上;
对所述会员积分变更产生的消息进行哈希计算,并映射至所述一致性哈希环上对应的物理积分变更消息队列中。
根据本发明一实施例,所述每个所述物理积分变更消息队列分别包括若干虚拟积分变更消息队列;所述若干虚拟消息队列分别进行哈希计算获得若干虚拟消息队列哈希值,并根据所述若干虚拟消息队列哈希值分别将所述若干虚拟消息队列映射在所述一致性哈希环对应的位置上。
根据本发明一实施例,对所述若干物理积分变更消息队列分别进行哈希计算,并全部映射至所述一致性哈希环上具体包括:
对所述若干物理积分变更消息队列分别确定唯一名称;
通过对每个物理积分变更消息队列的名称分别进行哈希计算获得若干物理积分变更消息队列哈希值;
根据所述若干物理积分变更消息队列哈希值分别将所述若干物理积分变更消息队列映射在所述一致性哈希环对应的位置上;
所述对所述会员积分变更产生的消息进行哈希计算,并映射至所述一致性哈希环上对应的物理积分变更消息队列中具体包括如下步骤:
根据所述会员积分变更生成若干消息;
分别对生成的所述消息的会员ID进行哈希计算获得若干消息哈希值;
所述消息哈希值分别与映射在所述一致性哈希环对应的位置上的所述若干物理积分变更消息队列哈希值和/或所述若干虚拟积分变更消息队列哈希值进行比较;
根据比较结果确定所述消息对应的积分变更消息队列。
本发明的优点在于:
本发明通过多队列单消费的模式配合一致性哈希环实现解决了消息处理速度慢、同一个消息对象先后两次操作处理顺序出错的问题,进一步解决在特殊业务场景中产生数据不一致,并发冲突,数据库死锁等问题。通过多消息队列的方式(即增加线程)来提升提取处理会员积分变更并反馈的速度,以解决实际积分和待处理积分不一致,导致并发冲突,数据库死锁的问题。通过一致性哈希环,解决实际积分不够却消耗积分成功和实际积分和待处理积分不一致,导致并发冲突,数据库死锁的问题。
附图说明
图1是本发明一实施例中的一种加快消息处理速度并维持处理顺序的方法流程图;
图2是本发明一实施例中的一种对若干物理消息队列分别进行哈希计算并映射至一致性哈希环上的方法流程图;
图3是本发明一实施例中的一种对业务产生的消息进行哈希计算并映射至一致性哈希环上的方法流程图;
图4是本发明一实施例中的一种加快消息处理速度并维持处理顺序的系统结构示意图;
图5是本发明一实施例中的一种加快会员积分变更消息处理速度并维持处理顺序的方法流程图;
图6是本发明一实施例中的一种对若干物理积分变更消息队列分别进行哈希计算并映射至一致性哈希环上的方法流程图;
图7是本发明一实施例中的一种对会员积分变更产生的消息进行哈希计算并映射至一致性哈希环上的方法流程图;
图8是本发明一实施例中的一种映射了多消息队列的一致性哈希环示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
与现有技术相比,本申请解决了同一个消息对象先后两次操作处理顺序出错的问题,解决在特殊业务场景中产生数据不一致,并发冲突,数据库死锁等问题。
针对现有技术中的技术问题,本发明的实施例一提供了一种加快消息处理速度并维持处理顺序的方法的一种实施方式,参见图1-图3,该加快消息处理速度并维持处理顺序的方法包括如下步骤:
S110:构建一致性哈希环,该一致性哈希环由自首端至尾端的若干递增哈希值组成,且首端与尾端相连接。
S120:消息服务器根据业务需求确定若干物理消息队列。其中,物理消息队列的数量与消息服务器的配置有关,配置越高的服务器可以配置更多的物理消息队列。
S130:对若干物理消息队列分别进行哈希计算,并全部映射至一致性哈希环上。其中,物理消息队列就是一致性哈希环中的物理节点,且每个物理消息队列还可以分别设置若干虚拟消息队列,即一致性哈希环中的虚拟节点。对该若干虚拟消息队列分别进行哈希计算获得若干虚拟消息队列哈希值,并根据该若干虚拟消息队列哈希值分别将该若干虚拟消息队列映射在一致性哈希环对应的位置上。进入虚拟消息队列的消息实际上是进入了该虚拟消息队列对应的物理消息队列,设置虚拟消息队列是为了使得数据能够更加均匀地分布到不同的物理消息队列中,以避免有的物理消息队列排队的消息特别多,有的物理消息队列排队的消息特别少。
其中,步骤S130具体包括:
S131:对若干物理消息队列分别确定唯一名称;
S132:通过对每个物理消息队列的名称分别进行哈希计算获得若干物理消息队列哈希值;
S133:根据若干物理消息队列哈希值分别将若干物理消息队列映射在一致性哈希环对应的位置上。
S140:对业务产生的消息进行哈希计算,并映射至一致性哈希环上对应的物理消息队列中。
其中,步骤S140具体包括:
S141:根据业务生成若干消息;
S142:分别对生成的消息的唯一标识进行哈希计算获得若干消息哈希值;其中,唯一标识例如订单业务中的用户ID、会员积分变更业务中的会员ID等。
S143:对每个消息哈希值分别与映射在一致性哈希环对应的位置上的若干物理消息队列哈希值和/或若干虚拟消息队列哈希值进行比较;
S144:根据比较结果确定消息对应的消息队列。具体包括:确定该消息哈希值自构建的一致性哈希环首尾不相邻的一侧自首端至尾端方向上遇到的第一个消息队列中进行排队。
本发明的实施例二提供了一种加快消息处理速度并维持处理顺序的系统400的一种具体实施方式,用于实现上述加快消息处理速度并维持处理顺序的方法,参见图4,该系统包括:
哈希环构建模块410:用于构建一致性哈希环;
消息队列确定模块420:用于消息服务器根据业务需求确定若干物理消息队列;
消息队列计算模块430:用于对所述若干物理消息队列分别进行哈希计算,并全部映射至所述一致性哈希环上;
消息计算模块440:用于对所述业务产生的消息进行哈希计算,并映射至所述一致性哈希环上对应的物理消息队列中。
随着电商的快速发展,电商平台的数量和种类越来越多,为消费者的日常购物提供了诸多方便,也极大地促进了社会经济的发展。与此同时,电商平台上的会员数量越来越多。在这种情况下,会员积分变更的数据量呈爆炸式增长,即消息生产者产生消息进入消息队列的数量多且速度快,而提取这些变更积分消息进行处理并向会员反馈的速度相对较慢,即消息消费者来不及获取消息队列中的消息进行消费,导致消息都积压在消息队列,提取处理速度慢,可使用的积分变更不及时。这会造成很多问题,例如会员A使用20积分参与抽奖活动后,实际还剩300积分,然而因为消息队列消息积压,导致积分变更未及时处理并反馈至会员A账户,致使会员A账户当前可使用的积分仍然是320积分,此时若会员A使用320积分进行礼品兑换动作,会出现实际数据和待处理数据不一致,导致并发冲突,数据库死锁等问题。为了解决这个技术问题,本申请通过增加消息队列的方式(即增加线程)来提升提取处理会员积分变更并反馈的速度。但是增加消息队列后,同一个会员的多次积分变更可能会排到不同的消息队列中进行提取、处理和反馈,而不同队列的吞吐量、存储的待处理消息的数量、数据处理速度都不相同,这会出现同一个用户先后两次操作处理顺序出错的情况。例如会员A初始积分为840,消耗320积分进行礼品兑换动作后,在积分变更做处理并反馈至会员A账户前,会员A又消耗20积分进行抵现支付动作,实际上会员A的积分变化过程应该是840,520,500。但可能会出现消耗20积分的消息进入的队列内排队的消息比较少,处理的速度比较快,致使对这条消息先进行了提取处理并反馈给会员A,而提取处理消耗320积分的消息相对于提取处理消耗20积分的消息较晚,会出现会员A的积分变化过程为840,820,500。这会出现本来第一次消费后只有520会员积分了,但因为处理并反馈给会员A的积分是820,导致会员A在消耗20积分的消息未提取处理并反馈前可以进行消耗520以上820以下积分的动作,若该动作处理速度比处理消耗20积分的消息速度快,则会出现实际积分不够却消耗积分成功的问题,且处理消耗20积分的消息时,会出现实际数据和待处理数据不一致,导致并发冲突,数据库死锁等问题。因此,在多消息队列处理会员积分变更中,同一个用户先后消息的处理顺序很重要。
针对上述技术问题,本发明的实施例三提供了一种加快消息处理速度并维持处理顺序的方法的一种具体实施方式,应用于加快会员积分变更处理速度并维持会员积分变更的处理顺序,参见图5-图7,该方法包括如下步骤:
S210:构建一致性哈希环,该一致性哈希环由自首端至尾端的若干递增哈希值组成,且首端与尾端相连接。
S220:消息服务器根据会员积分变更数据处理量确定若干物理积分变更消息队列。通过多消息队列的方式(即增加线程)来提升提取处理会员积分变更并反馈的速度,以解决实际数据和待处理数据不一致,导致并发冲突,数据库死锁等问题。
S230:对该若干物理积分变更消息队列分别进行哈希计算,并全部映射至一致性哈希环上。其中,物理积分变更消息队列就是一致性哈希环中的物理节点,且每个物理积分变更消息队列还可以分别设置若干虚拟消息队列,即一致性哈希环中的虚拟节点。对该若干虚拟积分变更消息队列分别进行哈希计算获得若干虚拟积分变更消息队列哈希值,并根据该若干虚拟积分变更消息队列哈希值分别将该若干虚拟积分变更消息队列映射在一致性哈希环对应的位置上。进入虚拟积分变更消息队列的消息实际上是进入了该虚拟积分变更消息队列对应的物理积分变更消息队列,设置虚拟积分变更消息队列是为了使得数据能够更加均匀地分布到不同的物理积分变更消息队列中,以避免有的物理积分变更消息队列排队的消息特别多,有的物理积分变更消息队列排队的消息特别少,尤其是分布至同一个积分变更消息队列中的情况。
其中,步骤S230具体包括:
S231:对若干物理积分变更消息队列分别确定唯一名称;
S232:通过对每个物理积分变更消息队列的名称分别进行哈希计算获得若干物理积分变更消息队列哈希值;
S233:根据若干物理积分变更消息队列哈希值分别将若干物理积分变更消息队列映射在一致性哈希环对应的位置上;
S240:对会员积分变更产生的消息进行哈希计算,并映射至一致性哈希环上对应的物理积分变更消息队列中。
其中,步骤S240具体包括:
S241:根据会员积分变更生成若干消息;
S242:分别对生成的消息的会员ID进行哈希计算获得若干积分变更消息哈希值;
S243:积分变更消息哈希值分别与映射在一致性哈希环对应的位置上的若干物理积分变更消息队列哈希值和/或若干虚拟积分变更消息队列哈希值进行比较;
S244:根据比较结果确定消息对应的积分变更消息队列。具体包括:确定该消息哈希值自构建的一致性哈希环首尾不相邻的一侧自首端至尾端方向上遇到的第一个消息队列中进行排队。
本实施例通过多消息队列及一致性哈希环,实现同一个会员必定进入同一个消息队列,从而解决实际积分不够却消耗积分成功的问题,且处理消耗20积分的消息时,会出现实际数据和待处理数据不一致,导致并发冲突,数据库死锁等问题。
示例性的,根据图8所示,会员积分变更业务中设有5个物理积分变更消息队列。一致性哈希环的起点是0,终点是232-1,并且起点与终点连接,环的中间的整数按逆时针分布,即自构建的一致性哈希环首尾不相邻的一侧自首端至尾端的方向,故这个环的整数分布范围是[0,232-1]。对5个物理积分变更消息队列分别确定唯一的名称order_queue1、order_queue2、order_queue3、order_queue4、order_queue5;分别对5个物理积分变更消息队列的名称order_queue1、order_queue2、order_queue3、order_queue4、order_queue5进行哈希计算获得对应的哈希值50000、100000、150000、200000、250000;分别将5个物理积分变更消息队列映射在一致性哈希环50000、100000、150000、200000、250000的位置上。其中,会员A先后执行了积分兑换礼品、积分抽奖的动作;会员B先后执行了积分兑换礼品、积分抵现支付的动作;会员C先后执行了两次积分抽奖的动作。先对执行了积分兑换礼品的会员A的ID进行哈希计算获得哈希值1200,将执行了积分兑换礼品的会员A映射到一致性哈希环上1200的位置,因为本实施例的哈希环是逆时针分布的,故而将执行了积分兑换礼品的会员A放到逆时针方向上遇到的第一个物理积分变更消息队列order_queue1中进行排队;在后执行了积分抽奖的会员A在积分兑换礼品的会员A之后进入到order_queue1中进行排队;会员B的ID进行哈希计算获得哈希值62000,故而执行了积分兑换礼品的会员B先进入到逆时针方向上遇到的第一个物理积分变更消息队列order_queue2中,在后执行了积分抵现支付的会员B在积分兑换礼品的会员B之后进入到order_queue2中;会员C的ID进行哈希计算获得哈希值203000,故而第一次执行了积分抽奖的会员C先进入到逆时针方向上遇到的第一个物理积分变更消息队列order_queue5中进行排队,在后执行了第二次积分抽奖的会员C在第一次积分抽奖之后进入到order_queue5中进行排队。
前述举例仅针对物理积分变更消息队列的实施例进行举例,若将其中order_queue5是物理积分变更消息队列order_queue1的虚拟积分变更消息队列,则会员C实际上也是进入到物理积分变更消息队列order_queue1中进行排队的。
综上所述,通过本发明提出的技术方案,能够通过队列单消费的模式配合一致性哈希环实现解决了同一个消息对象先后两次操作处理顺序出错的问题,解决在特殊业务场景中产生数据不一致,并发冲突,数据库死锁等问题。通过多消息队列的方式(即增加线程)来提升提取处理会员积分变更并反馈的速度,以解决实际积分和待处理积分不一致,导致并发冲突,数据库死锁的问题。通过一致性哈希环,解决实际积分不够却消耗积分成功和实际积分和待处理积分不一致,导致并发冲突,数据库死锁的问题。
上述描述仅是对本发明技术方案较佳实施例的描述,并非对本发明技术方案范围的任何限定,本发明技术方案领域的普通技术人员根据上述揭示内容做的任何变更、修饰,均属于权利要求书的保护范围。
Claims (10)
1.一种加快消息处理速度并维持处理顺序的方法,其特征在于,包括如下步骤:
构建一致性哈希环,所述一致性哈希环由自首端至尾端的若干递增哈希值组成,且首端与尾端相连接;
消息服务器根据业务需求确定若干物理消息队列;
对所述若干物理消息队列分别进行哈希计算,并全部映射至所述一致性哈希环上;
对所述业务产生的消息进行哈希计算,并映射至所述一致性哈希环上对应的物理消息队列中。
2.根据权利要求1所述的一种加快消息处理速度并维持处理顺序的方法,其特征在于,每个所述物理消息队列分别包括若干虚拟消息队列。
3.根据权利要求2所述的一种加快消息处理速度并维持处理顺序的方法,其特征在于,所述若干虚拟消息队列分别进行哈希计算获得若干虚拟消息队列哈希值,并根据所述若干虚拟消息队列哈希值分别将所述若干虚拟消息队列映射在所述一致性哈希环对应的位置上。
4.根据权利要求1所述的一种加快消息处理速度并维持处理顺序的方法,其特征在于,对所述若干物理消息队列分别进行哈希计算,并全部映射至所述一致性哈希环上具体包括:
对所述若干物理消息队列分别确定唯一名称;
通过对每个物理消息队列的名称分别进行哈希计算获得若干物理消息队列哈希值;
根据所述若干物理消息队列哈希值分别将所述若干物理消息队列映射在所述一致性哈希环对应的位置上。
5.根据权利要求3或4所述的一种加快消息处理速度并维持处理顺序的方法,其特征在于,对所述业务产生的消息进行哈希计算,并映射至所述一致性哈希环上对应的物理消息队列中具体包括如下步骤:
根据所述业务生成若干消息;
分别对生成的所述消息的唯一标识进行哈希计算获得若干消息哈希值;
每个所述消息哈希值分别与映射在所述一致性哈希环对应的位置上的所述若干物理消息队列哈希值和/或所述若干虚拟消息队列哈希值进行比较;
根据比较结果确定所述消息对应的消息队列。
6.根据权利要求5所述的一种加快消息处理速度并维持处理顺序的方法,其特征在于,所述根据比较结果确定所述消息对应的消息队列具体包括:确定所述消息哈希值自所述一致性哈希环首尾不相邻的一侧自首端至尾端方向上遇到的第一个消息队列中进行排队。
7.应用如权利要求1-6任意一项所述的一种加快消息处理速度并维持处理顺序的方法的一种加快消息处理速度并维持处理顺序的系统,其特征在于,包括:
哈希环构建模块,用于构建一致性哈希环;
消息队列确定模块,用于消息服务器根据业务需求确定若干物理消息队列;
消息队列计算模块,用于对所述若干物理消息队列分别进行哈希计算,并全部映射至所述一致性哈希环上;
消息计算模块,用于对所述业务产生的消息进行哈希计算,并映射至所述一致性哈希环上对应的物理消息队列中。
8.根据权利要求1-6任意一项所述的一种加快消息处理速度并维持处理顺序的方法,应用于加快会员积分变更处理速度并维持会员积分变更的处理顺序,其特征在于,包括如下步骤:
构建一致性哈希环,所述一致性哈希环由自首端至尾端的若干递增哈希值组成,且首端与尾端相连接;
消息服务器根据会员积分变更数据处理量确定若干物理积分变更消息队列;
对所述若干物理积分变更消息队列分别进行哈希计算,并全部映射至所述一致性哈希环上;
对所述会员积分变更产生的消息进行哈希计算,并映射至所述一致性哈希环上对应的物理积分变更消息队列中。
9.根据权利要求8所述的一种加快消息处理速度并维持处理顺序的方法,应用于加快会员积分变更处理速度并维持会员积分变更的处理顺序,其特征在于,所述每个所述物理积分变更消息队列分别包括若干虚拟积分变更消息队列;所述若干虚拟消息队列分别进行哈希计算获得若干虚拟消息队列哈希值,并根据所述若干虚拟消息队列哈希值分别将所述若干虚拟消息队列映射在所述一致性哈希环对应的位置上。
10.根据权利要求9所述的一种加快消息处理速度并维持处理顺序的方法,其特征在于,对所述若干物理积分变更消息队列分别进行哈希计算,并全部映射至所述一致性哈希环上具体包括:
对所述若干物理积分变更消息队列分别确定唯一名称;
通过对每个物理积分变更消息队列的名称分别进行哈希计算获得若干物理积分变更消息队列哈希值;
根据所述若干物理积分变更消息队列哈希值分别将所述若干物理积分变更消息队列映射在所述一致性哈希环对应的位置上;
所述对所述会员积分变更产生的消息进行哈希计算,并映射至所述一致性哈希环上对应的物理积分变更消息队列中具体包括如下步骤:
根据所述会员积分变更生成若干消息;
分别对生成的所述消息的会员ID进行哈希计算获得若干消息哈希值;
每个所述消息哈希值分别与映射在所述一致性哈希环对应的位置上的所述若干物理积分变更消息队列哈希值和/或所述若干虚拟积分变更消息队列哈希值进行比较;
根据比较结果确定所述消息对应的积分变更消息队列。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310414080.4A CN116820795A (zh) | 2023-04-18 | 2023-04-18 | 加快消息处理速度并维持处理顺序的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310414080.4A CN116820795A (zh) | 2023-04-18 | 2023-04-18 | 加快消息处理速度并维持处理顺序的方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116820795A true CN116820795A (zh) | 2023-09-29 |
Family
ID=88124808
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310414080.4A Pending CN116820795A (zh) | 2023-04-18 | 2023-04-18 | 加快消息处理速度并维持处理顺序的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116820795A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117221324A (zh) * | 2023-11-09 | 2023-12-12 | 腾讯科技(深圳)有限公司 | 云服务器的创建任务分发方法、装置、电子设备及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103747073A (zh) * | 2013-12-30 | 2014-04-23 | 乐视网信息技术(北京)股份有限公司 | 一种分布式缓存的方法和系统 |
CN110334091A (zh) * | 2019-05-09 | 2019-10-15 | 重庆天蓬网络有限公司 | 一种数据分片分布式处理方法、系统、介质和电子设备 |
CN112015561A (zh) * | 2020-09-16 | 2020-12-01 | 支付宝(杭州)信息技术有限公司 | 用于流式计算服务的方法、装置和系统 |
CN113542013A (zh) * | 2021-06-24 | 2021-10-22 | 新华三大数据技术有限公司 | 虚拟化网络功能管理消息分配方法、装置及设备 |
CN114610504A (zh) * | 2020-12-09 | 2022-06-10 | 腾讯科技(深圳)有限公司 | 消息处理方法、装置、电子设备及存储介质 |
-
2023
- 2023-04-18 CN CN202310414080.4A patent/CN116820795A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103747073A (zh) * | 2013-12-30 | 2014-04-23 | 乐视网信息技术(北京)股份有限公司 | 一种分布式缓存的方法和系统 |
CN110334091A (zh) * | 2019-05-09 | 2019-10-15 | 重庆天蓬网络有限公司 | 一种数据分片分布式处理方法、系统、介质和电子设备 |
CN112015561A (zh) * | 2020-09-16 | 2020-12-01 | 支付宝(杭州)信息技术有限公司 | 用于流式计算服务的方法、装置和系统 |
CN114610504A (zh) * | 2020-12-09 | 2022-06-10 | 腾讯科技(深圳)有限公司 | 消息处理方法、装置、电子设备及存储介质 |
CN113542013A (zh) * | 2021-06-24 | 2021-10-22 | 新华三大数据技术有限公司 | 虚拟化网络功能管理消息分配方法、装置及设备 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117221324A (zh) * | 2023-11-09 | 2023-12-12 | 腾讯科技(深圳)有限公司 | 云服务器的创建任务分发方法、装置、电子设备及介质 |
CN117221324B (zh) * | 2023-11-09 | 2024-03-08 | 腾讯科技(深圳)有限公司 | 云服务器的创建任务分发方法、装置、电子设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113347164B (zh) | 基于区块链的分布式共识系统及方法、设备、存储介质 | |
US10200460B2 (en) | Server-processor hybrid system for processing data | |
US20210203477A1 (en) | Method and device for blockchain full sharding based on a p2p storage network and a multi-layer architecture | |
WO2023016090A1 (zh) | 区块链网络的数据处理方法、装置、计算机设备、计算机可读存储介质及计算机程序产品 | |
CN110941647A (zh) | 一种基于dag的区块链的跨链交互方法和系统 | |
CN116820795A (zh) | 加快消息处理速度并维持处理顺序的方法及系统 | |
CN111427694A (zh) | 任务执行方法、装置、系统和服务器 | |
US20230017790A1 (en) | Graphic-blockchain-orientated hybrid consensus implementation apparatus and implementation method thereof | |
CN100450105C (zh) | 一种基于java消息服务的同步消息接口实现方法 | |
WO2022121612A1 (zh) | 区块链网络的信息处理方法、装置、设备及存储介质 | |
CN114610504A (zh) | 消息处理方法、装置、电子设备及存储介质 | |
Bansal et al. | A fast, secure and distributed consensus mechanism for energy trading among vehicles using hashgraph | |
Vizier et al. | ComChain: A blockchain with Byzantine fault‐tolerant reconfiguration | |
CN116382943A (zh) | 顺序消息处理方法、总线系统、计算机设备及存储介质 | |
CN111026813A (zh) | 一种基于MySQL的高可用准实时数据同步方法 | |
CN113807851A (zh) | 一种基于分片的区块链可扩展性实现方法及系统 | |
CN110430282A (zh) | 分布式系统节点之间的数据传输方法及装置 | |
CN110750362A (zh) | 生物信息的分析方法、装置和存储介质 | |
CN113746859B (zh) | 一种高网络性能与安全性的vaPBFT区块链共识方法 | |
CN115827772A (zh) | 适用于电力设备数据上链的共识方法、装置和服务器 | |
CN115526586A (zh) | 一种基于智能运算的业务流程处理方法 | |
CN115002073A (zh) | 一种基于改进raft的数据更新方法及系统 | |
CN115174090A (zh) | 区块链共识方法及装置 | |
CN116701452A (zh) | 数据处理方法、相关设备、存储介质及程序产品 | |
CN111510484A (zh) | 区块链处理方法、系统、装置、计算机设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |