CN113296970B - 消息处理、消息队列管理方法及装置 - Google Patents
消息处理、消息队列管理方法及装置 Download PDFInfo
- Publication number
- CN113296970B CN113296970B CN202010607491.1A CN202010607491A CN113296970B CN 113296970 B CN113296970 B CN 113296970B CN 202010607491 A CN202010607491 A CN 202010607491A CN 113296970 B CN113296970 B CN 113296970B
- Authority
- CN
- China
- Prior art keywords
- message queue
- target
- physical
- message
- logical
- 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.)
- Active
Links
- 238000012545 processing Methods 0.000 title claims abstract description 71
- 238000007726 management method Methods 0.000 title description 33
- 238000013507 mapping Methods 0.000 claims abstract description 190
- 238000000034 method Methods 0.000 claims abstract description 65
- 230000004044 response Effects 0.000 claims description 28
- 239000003999 initiator Substances 0.000 claims description 14
- 238000012217 deletion Methods 0.000 claims description 7
- 230000037430 deletion Effects 0.000 claims description 7
- 230000005540 biological transmission Effects 0.000 claims description 5
- 238000012544 monitoring process Methods 0.000 claims description 2
- 239000000758 substrate Substances 0.000 claims 1
- 230000008859 change Effects 0.000 description 15
- 230000008569 process Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 11
- 230000003993 interaction Effects 0.000 description 7
- 238000003672 processing method Methods 0.000 description 6
- 230000004048 modification Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 238000004590 computer program Methods 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008602 contraction Effects 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000003068 static effect 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
Abstract
本说明书一个或多个实施例提供消息处理、消息队列管理方法及装置。该方法可以包括:接收到针对目标逻辑消息队列发起的消息发送请求;根据逻辑消息队列与物理消息队列的映射关系,确定所述目标逻辑消息队列对应的目标物理消息队列;将所述消息发送请求对应的目标消息发送至所述目标物理消息队列中。
Description
技术领域
本公开涉及软件处理技术领域,尤其涉及一种消息处理、消息队列管理方法及装置。
背景技术
随着网络技术的发展,消息队列技术被大量使用。消息队列(Message Queue)是在消息的传输过程中保存消息的容器,而使用消息队列能够实现系统解耦、提高系统的响应时间等,可以提高系统的可扩展性和灵活性。
发明内容
有鉴于此,本说明书一个或多个实施例提供了消息处理、消息队列管理方法及装置。
为实现上述目的,本说明书一个或多个实施例提供技术方案如下:
根据本说明书一个或多个实施例的第一方面,提供了一种消息处理方法,该方法包括:
接收到针对目标逻辑消息队列发起的消息发送请求;
根据逻辑消息队列与物理消息队列的映射关系,确定所述目标逻辑消息队列对应的目标物理消息队列;
将所述消息发送请求对应的目标消息发送至所述目标物理消息队列中。
根据本说明书一个或多个实施例的第二方面,提供了一种消息处理方法,该方法包括:
响应于针对目标逻辑消息队列发起的消息处理请求,确定所述消息处理请求对应的目标消息在所述目标逻辑消息队列中对应的目标逻辑位点;
根据逻辑位点区间与物理消息队列的映射关系,以及所述目标逻辑位点所处的逻辑位点区间,确定所述目标逻辑位点对应的目标物理消息队列;
触发将所述目标消息从所述目标物理消息队列中获取并反馈至所述消息处理请求的发起方的操作。
根据本说明书一个或多个实施例的第三方面,提供了一种消息队列管理方法,该方法包括:
确定目标物理节点中部署的目标物理消息队列;
响应于针对目标逻辑消息队列的管理指令,生成所述目标逻辑消息队列与所述目标物理消息队列之间的映射关系。
根据本说明书一个或多个实施例的第四方面,提供了一种消息队列管理方法,该方法包括:
响应于针对目标物理节点的删除指令,确定所述目标物理节点中部署的目标物理消息队列;
在已建立的逻辑消息队列与物理消息队列之间的映射关系集合中,删除包含所述目标物理消息队列的映射关系。
根据本说明书一个或多个实施例的第五方面,提供了一种消息队列管理方法,该方法包括:
响应于针对目标物理节点的添加指令,确定所述目标物理节点中部署的目标物理消息队列;
在已建立的逻辑消息队列与物理消息队列的映射关系集合中,添加包含所述目标物理消息队列的映射关系。
根据本说明书一个或多个实施例的第六方面,提出了一种消息处理装置,该装置包括:
接收单元,用于接收到针对目标逻辑消息队列发起的消息发送请求;
第一物理消息队列确定单元,用于根据逻辑消息队列与物理消息队列的映射关系,确定所述目标逻辑消息队列对应的目标物理消息队列;
发送单元,用于将所述消息发送请求对应的目标消息发送至所述目标物理消息队列中。
根据本说明书一个或多个实施例的第七方面,提出了一种消息处理装置,该装置包括:
逻辑位点确定单元,用于响应于针对目标逻辑消息队列发起的消息处理请求,确定所述消息处理请求对应的目标消息在所述目标逻辑消息队列中对应的目标逻辑位点;
第二物理消息队列确定单元,用于根据逻辑位点区间与物理消息队列的映射关系,以及所述目标逻辑位点所处的逻辑位点区间,确定所述目标逻辑位点对应的目标物理消息队列;
获取与反馈单元,用于触发将所述目标消息从所述目标物理消息队列中获取并反馈至所述消息处理请求的发起方的操作。
根据本说明书一个或多个实施例的第八方面,提出了一种消息队列管理装置,该装置包括:
第三物理消息队列确定单元,用于确定目标物理节点中部署的目标物理消息队列;
映射关系生成单元,用于响应于针对目标逻辑消息队列的管理指令,生成所述目标逻辑消息队列与所述目标物理消息队列之间的映射关系。
根据本说明书一个或多个实施例的第九方面,提出了一种消息队列管理装置,该装置包括:
第四物理消息队列确定单元,用于响应于针对目标物理节点的删除指令,确定所述目标物理节点中部署的目标物理消息队列;
映射关系删除单元,用于在已建立的逻辑消息队列与物理消息队列之间的映射关系集合中,删除包含所述目标物理消息队列的映射关系。
根据本说明书一个或多个实施例的第十方面,提出了一种消息队列管理装置,该装置包括:
第五物理消息队列确定单元,用于响应于针对目标物理节点的添加指令,确定所述目标物理节点中部署的目标物理消息队列;
映射关系添加单元,用于在已建立的逻辑消息队列与物理消息队列的映射关系集合中,添加包含所述目标物理消息队列的映射关系。
根据本说明书一个或多个实施例的第十一方面,提供一种电子设备。所述电子设备包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现如第一方面、第二方面、第三方面、第四方面或第五方面所述的方法。
根据本说明书一个或多个实施例的第十二方面,提出了一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如第一方面、第二方面、第三方面、第四方面或第五方面所述方法的步骤。
附图说明
图1是本说明书一示例性实施例提供的一种消息队列系统的架构示意图。
图2是本说明书一示例性实施例提供的一种消息处理方法的流程图。
图3是本说明书一示例性实施例提供的另一种消息处理方法的流程图。
图4是本说明书一示例性实施例提供的一种消息队列管理方法的流程图。
图5是本说明书一示例性实施例提供的另一种消息队列管理方法的流程图。
图6A、6B、6C和6D是本说明书一示例性实施例提供的一种消息处理、消息队列管理方法的流程图。
图7是本说明书一示例性实施例提供的一种电子设备的结构示意图。
图8是本说明书一示例性实施例提供的一种消息处理装置的框图。
图9是本说明书一示例性实施例提供的另一种消息处理装置的框图。
图10是本说明书一示例性实施例提供的一种电子设备的结构示意图。
图11是本说明书一示例性实施例提供的一种消息队列管理装置的框图。
图12是本说明书一示例性实施例提供的另一种消息队列管理装置的框图。
图13是本说明书一示例性实施例提供的另一种消息队列管理装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
图1是本说明书示出的一种消息队列系统的架构示意图。如图1所示,一个消息队列系统可以包括生产者11、消息队列服务器12、消费者13。其中,生产者11和消费者13可以被称为消息队列客户端,消息队列服务器12也可以被称为消息队列服务端,消息是指传输的一连串字节数据,例如各种类型的数据文件或者一个应用向其他应用发送的处理请求等。
生产者11可以将生产的一个消息发送至消息队列服务器12,由消息队列服务器12对该消息进行相应的处理,例如消息队列服务器12对该消息进行暂时存储等,而消费者13则可以从消息队列服务器12中获取消息并对该消息进行后续处理。
消息队列服务器12可以为包含一独立主机的物理服务器,或者该服务器可以为主机集群承载的虚拟服务器。消息队列服务器12中可以部署逻辑消息队列和物理消息队列,逻辑消息队列用于与外部系统进行交互,物理消息队列用于暂时存储消息。其中,逻辑消息队列与物理消息队列可以是同一消息引擎的队列,例如均可以为Kafka消息引擎中的队列或者RabbitMQ消息引擎中的队列,当然逻辑消息队列与物理消息队列还可以是不同消息引擎的队列,例如逻辑消息队列可以为Kafka消息引擎中的队列、而物理消息队列可以为RabbitMQ消息引擎中的队列等,本说明书中并不对此进行限制。
而对于消息队列服务器12、生产者11与消费者13之间进行交互的网络,可以包括多种类型的有线或无线网络。而随着网络技术的不断发展,消息队列服务器12中部署的消息队列的弹性扩容和缩容成为了消息队列的重要功能。
图2是本说明书示出的一种消息处理方法流程图。如图2所示,该方法可以应用于服务器(例如图1所示的消息队列服务器12等);该方法可以包括以下步骤:
步骤202,接收到针对目标逻辑消息队列发起的消息发送请求。
在一实施例中,服务器可以接收到客户端发送的针对目标逻辑消息队列的消息发送请求,其中该消息发送请求中可以包含目标逻辑消息队列的标识信息和需要被处理的消息等,其中目标逻辑消息队列的标识信息可以是目标逻辑消息队列的名称或者是预定义的目标逻辑消息队列的编号等,本说明书中并不对此进行限制。
在一实施例中,服务器可以在本地维护有逻辑消息队列与物理消息队列的映射关系集合,该映射关系集合中可以记录有逻辑消息队列的标识信息、物理消息队列的标识信息,当然该映射关系中还可以记录有逻辑消息队列的逻辑位点区间和/或对应的物理消息队列的物理位点区间等,标识信息可以是逻辑消息队列、物理消息队列的名称或者编号等,本说明书中并不对此进行限制。
在一实施例中,映射关系集合可以被服务器用于切换目标逻辑消息队列对应的物理消息队列,服务器通过对映射关系集合中映射关系的增加、删除或者修改操作,可以使得目标逻辑消息队列对应的物理消息队列增加、减少或者改变。服务器还可以根据该映射关系集合中记录的映射关系,将发送至目标逻辑消息队列中的消息暂时存储至对应的物理消息队列中。
步骤204,根据逻辑消息队列与物理消息队列的映射关系,确定所述目标逻辑消息队列对应的目标物理消息队列。
在一实施例中,服务端根据映射关系集合中记录的逻辑消息队列与物理消息队列的映射关系,可以确定目标逻辑队列对应的目标物理消息队列。在该目标逻辑消息队列对应单个物理消息队列的情况下,服务器可以直接根据逻辑队列与物理队列的映射关系确定目标逻辑消息队列对应的目标物理队列。其中,映射关系集合中的映射关系可以是预先保存至服务端的,还可以是服务端根据接收到的管理指令而生成的,本说明书中并不对此进行限制。
在目标逻辑消息队列对应多个物理消息队列的情况下,服务器可以确定消息发送请求对应的目标消息在目标逻辑消息队列中对应的目标逻辑位点。其中,在消息发送请求中包含目标逻辑位点的情况下,服务器可以从消息发送请求中获取目标逻辑位点,或者,服务器还可以根据接收到消息发送请求的时间顺序或者其他预设的顺序为目标消息分配相应的目标逻辑位点,本说明书中并不对此进行限制。
服务器可以将该目标逻辑位点所处的逻辑位点区间对应的物理消息队列选取为目标物理消息队列。例如,服务器可以根据预定义的映射关系集合中记录的逻辑位点区间与物理消息队列的映射关系,确定目标逻辑位点区间所处的逻辑位点区间对应的目标物理消息队列,或者,服务端还可以将目标逻辑位点所处的逻辑位点区间的标识信息与对应的物理消息队列的标识信息进行匹配,若两者相同则可以确定该逻辑位点区间对应的目标物理消息队列,其中标识信息可以是数值或者是相应的字符信息等,本说明书中并不对此进行限制。
在一实施例中,服务器还可以确定目标逻辑位点在目标物理消息队列中对应的目标物理位点,并且可以将目标消息存储至该目标物理位点处,例如,服务器可以根据预定义的映射关系集合中记录的逻辑位点区间与物理位点区间的映射关系,以及目标逻辑位点,计算出目标逻辑位点在目标物理消息队列中对应的目标物理位点等,本说明书中并不对此进行限制。
在一个实施例中,在目标逻辑消息队列对应多个物理消息队列的情况下,服务器可以查找目标逻辑消息队列中包含空闲逻辑位点的逻辑位点区间,并且可以将对应的逻辑位点区间中包含空闲逻辑位点的物理消息队列选取为目标物理消息队列。
若对应的逻辑位点区间中包含空闲逻辑位点的物理消息队列的数量为多个,服务器可以选取这些物理消息队列中优先级最高为目标物理消息队列或者服务器可以选取这些物理消息队列中任意一个物理消息队列为目标物理消息队列,当然还可以根据实际需求设定需要选取的目标物理消息队列,本说明书中并不对此进行限制。
步骤206,将所述消息发送请求对应的目标消息发送至所述目标物理消息队列中。
在一实施例中,若目标物理消息队列被部署于本地的物理节点上,服务器可以将消息发送请求对应的目标消息发送至该目标物理消息队列中。
在一实施例中,若目标物理消息队列被部署于区别于本地的物理节点的另一物理节点的情况下,服务器可以将该目标消息发送至该另一物理节点,以使得该另一物理节点将目标消息发送至目标物理消息队列中,其中,目标物理消息队列可以将接收到的目标消息进行暂时存储等处理操作,本说明书中并不对此进行限制。
在一实施例中,服务器还可以接收到针对目标逻辑消息队列的映射关系变更指令,服务器可以获取该映射关系变更指令对应的映射关系,服务器可以根据映射关系变更指令中的指示对获取到的映射关系进行添加、删除或者修改等操作。其中,该映射关系变更指令可以由客户端发送、部署于本地的物理节点转发或者区别于本地的物理节点的其他物理节点转发,本说明书中并不对此进行限制。
由以上技术方案可见,本说明书中消息队列的服务器中可以维护有逻辑消息队列与物理消息队列的映射关系集合,其中逻辑消息队列可以用于与外部系统进行交互,物理消息队列可以用于存储消息,从而使得服务器可以根据目标逻辑消息队列与物理消息队列的映射关系,将目标逻辑消息队列接收到的目标消息发送至对应的物理消息队列中,并由物理消息队列对目标消息进行存储,因而在服务器中用于存储消息的物理消息队列的数量发生变更时,服务器仅仅需要对映射关系集合中的映射关系进行更新,而不需要改变逻辑消息队列的数量,从而使得外部系统对于服务器中物理消息队列的数量的变化过程是透明的,那么无需对外部系统进行任何修改,可以避免影响外部系统与服务器的交互过程,提升了服务器系统的可扩展性,同时在本说明书的技术方案中目标消息可以根据变更后的映射关系发送至另一物理消息队列中,而不需要对历史物理消息队列中的数据进行迁移,可以避免额外的资源消耗,从而快速实现物理消息队列的负载均衡,耗时时间短,可以避免数据迁移过程对目标消息的存储与消费过程的影响,可以提升服务器系统的稳定性。
图3是本说明书示出的一种消息处理方法流程图。如图3所示,该方法可以应用于服务器(例如图1所示的消息队列服务器12等);该方法可以包括以下步骤:
步骤302,响应于针对目标逻辑消息队列发起的消息处理请求,确定所述消息处理请求对应的目标消息在所述目标逻辑消息队列中对应的目标逻辑位点。
在一实施例中,服务器可以响应于客户端发送的针对目标逻辑消息队列发起的消息处理请求,确定出该消息处理请求对应的目标消息在目标逻辑消息队列中对应的目标逻辑位点。或者,服务器可以响应于区别于本地物理节点的第一物理节点转发的针对目标逻辑消息队列的消息处理请求,确定出该消息处理请求对应的目标消息在目标逻辑队列中对应的目标逻辑位点。
在一实施例中,消息处理请求中可以包含消息处理请求对应的目标消息在该目标逻辑消息队列中的目标逻辑位点,或者消息处理请求中还可以包含其他用于确定该目标消息在目标逻辑消息队列中的目标逻辑位点的标识信息,本说明书中并不对此进行限制。
在一实施例中,服务器可以在本地维护有逻辑消息队列与物理消息队列的映射关系集合,该映射关系集合中可以记录有逻辑消息队列的标识信息、物理消息队列的标识信息,当然该映射关系中还可以记录有逻辑消息队列的逻辑位点区间和/或对应的物理消息队列的物理位点区间等,标识信息可以是逻辑消息队列、物理消息队列的名称或者编号等,本说明书中并不对此进行限制。
在一实施例中,映射关系集合可以被服务器用于切换目标逻辑消息队列对应的物理消息队列,服务器通过对映射关系集合中映射关系的增加、删除或者修改操作,可以使得目标逻辑消息队列对应的物理消息队列增加、减少或者改变。服务器还可以根据该映射关系集合中记录的映射关系,将目标逻辑消息队列接收到的消息发送至对应的物理消息队列中。
步骤304,根据逻辑位点区间与物理消息队列的映射关系,以及所述目标逻辑位点所处的逻辑位点区间,确定所述目标逻辑位点对应的目标物理消息队列。
在一实施例中,服务器可以根据预定义的映射关系集合中记录的逻辑位点区间与物理消息队列的映射关系,以及确定出的目标逻辑位点所处的逻辑位点区间,从而确定出目标逻辑位点对应的目标物理消息队列。
步骤306,触发将所述目标消息从所述目标物理消息队列中获取并反馈至所述消息处理请求的发起方的操作。
在一实施例中,服务器可以确定出目标逻辑位点在目标物理消息队列中对应的目标物理位点,例如,服务器可以根据预定义的映射关系集合中记录的逻辑位点区间与物理位点区间的映射关系,以及目标逻辑位点,计算出目标逻辑位点在目标物理消息队列中对应的目标物理位点等,本说明书并不对此进行限制。那么服务器可以从目标物理队列中对应的目标物理位点处获取该目标消息,并且可以将该目标消息反馈至消息处理请求的发起方。
在一实施例中,在目标物理消息队列被部署于本地的物理节点的情况下,那么服务器可以从直接从目标物理消息队列中获取目标消息,并将该目标消息反馈至消息处理请求的发起方。其中消息请求的发起方可以是如图1所述的消费者13,消费者13可以为用于读取消息的客户端或者服务端等,本说明书中并不对此进行限制。
在一实施例中,在目标物理消息队列被部署于区别于本地节点的第二物理节点的情况下,服务器可以将消息处理请求发送至第二物理节点,以使得第二物理节点从目标物理消息队列中获取并由第二物理节点将该目标消息反馈至消息处理请求的发起方。
在一实施例中,在目标物理消息队列被部署于区别于本地节点的第二物理节点的情况下,服务器可以将消息处理请求发送至第二物理节点,并且服务器可以接收第二物理节点返回的目标消息,由服务器将该目标消息反馈至消息处理请求的发起方。
由以上技术方案可见,本说明书中消息队列的服务器可以维护有逻辑消息队列与物理消息队列的映射关系集合,其中逻辑消息队列可以用于与外部系统进行交互,物理消息队列可以用于存储消息,服务器可以根据目标逻辑消息队列与物理消息队列的映射关系,将目标逻辑消息队列接收到的目标消息发送至对应的物理消息队列中,并由物理消息队列对目标消息进行存储,因而在服务器中用于存储消息的物理消息队列的数量发生变更时,服务器仅仅需要对映射关系集合中的映射关系进行更新,而不需要改变逻辑消息队列的数量,从而使得外部系统对于服务器中物理消息队列的数量的变化过程是透明的,那么无需对外部系统进行任何修改,可以避免影响外部系统与服务器的交互过程,提升了服务器系统的可扩展性,同时在本说明书的技术方案中目标消息可以根据变更后的映射关系发送至另一物理消息队列中,而不需要对历史物理消息队列中的数据进行迁移,可以避免额外的资源消耗,从而快速实现物理消息队列的负载均衡,耗时时间短,可以避免数据迁移过程对目标消息的存储与消费过程的影响,可以提升服务器系统的稳定性。
图4是本说明书示出的一种消息队列管理方法流程图。如图4所示,该方法可以应用于服务器(例如图1所示的消息队列服务器12等);该方法可以包括以下步骤:
步骤402,确定目标物理节点中部署的目标物理消息队列。
在一实施例中,服务器可以确定目标物理节点中部署的所有目标物理消息队列,例如,服务器可以获取该目标物理节点中所有的目标物理消息队列的名称信息或者编号等标识信息。其中一个目标物理节点中可以部署有一个或多个物理消息队列,物理消息队列被用于存储消息。
步骤404,响应于针对目标逻辑消息队列的管理指令,生成所述目标逻辑消息队列与所述目标物理消息队列之间的映射关系。
在一实施例中,服务器可以接收到客户端发送的、部署于本地的物理节点转发或者区别于本地的物理节点的其他物理节点转发的针对目标逻辑消息队列的管理指令,那么服务器可以响应于接收到的管理指令创建目标逻辑消息队列与目标物理消息队列之间的映射关系,或者服务器从预定义的映射关系集合中查找包含目标逻辑消息队列的历史映射关系,并对这些历史映射关系进行修改,从而获得目标逻辑消息队列与目标物理消息队列之间的映射关系。
在一实施例中,服务器可以为目标物理消息队列配置相应的逻辑位点区间,从而使得服务器可以将对应于该逻辑位点区间的消息都存储至该目标物理消息队列中。并且该目标物理消息队列与目标逻辑消息队列对应的其他物理消息队列分别对应的逻辑位点区间之间不存在交集,目标逻辑消息队列中的每个逻辑位点区间分别对应一个物理消息队列。
在一实施例中,服务器可以监测目标逻辑消息队列中的消息量大小,在消息量达到预设的第一消息量阈值的情况下,服务器可以生成管理指令。而在消息量不大于预设的第二消息量阈值的情况下,服务器可以自动从映射关系集合中删除目标逻辑消息队列与目标物理消息队列之间的映射关系。
由以上技术方案可见,本说明书中消息队列的服务器可以维护有逻辑消息队列与物理消息队列的映射关系集合,其中逻辑消息队列可以用于与外部系统进行交互,物理消息队列可以用于存储消息,服务器可以根据目标逻辑消息队列与物理消息队列的映射关系,将目标逻辑消息队列接收到的目标消息发送至对应的物理消息队列中,并由物理消息队列对目标消息进行存储,因而在服务器中用于存储消息的物理消息队列的数量发生变更时,服务器仅仅需要对映射关系集合中的映射关系进行更新,而不需要改变逻辑消息队列的数量,从而使得外部系统对于服务器中物理消息队列的数量的变化过程是透明的,那么无需对外部系统进行任何修改,可以避免影响外部系统与服务器的交互过程,提升了服务器系统的可扩展性,同时在本说明书的技术方案中目标消息可以根据变更后的映射关系发送至另一物理消息队列中,而不需要对历史物理消息队列中的数据进行迁移,可以避免额外的资源消耗,从而快速实现物理消息队列的负载均衡,耗时时间短,可以避免数据迁移过程对目标消息的存储与消费过程的影响,可以提升服务器系统的稳定性。
图5是本说明书示出的一种消息队列管理方法的流程图。如图5所示,该方法可以应用于服务器(例如图1所示的消息队列服务器12等);该方法可以包括以下步骤:
步骤502,响应于针对目标物理节点的删除指令,确定所述目标物理节点中部署的目标物理消息队列。
在一实施例中,服务器可以响应于针对目标物理节点的删除指令,可以确定目标物理节点中部署的所有的目标物理消息队列。例如,服务器可以获取该目标物理节点中所有的目标物理消息队列的名称信息或者编号等标识信息。
步骤504,在已建立的逻辑消息队列与物理消息队列之间的映射关系集合中,删除包含所述目标物理消息队列的映射关系。
在一实施例中,服务器中可以维护有逻辑消息队列与物理消息队列之间的映射关系集合,那么服务器可以从该映射关系集合中删除包含目标物理消息队列的映射关系,从而使得该目标物理节点不再用于存储消息。
其中,映射关系集合中可以记录有服务器中各个逻辑消息队列与物理消息队列之间的映射关系,其中逻辑消息队列的每个逻辑位点区间可以分别对应一个物理消息队列,同一逻辑消息队列的不同逻辑位点区间可以对应不同的物理消息队列,并且这些物理消息队列可以在同一物理节点上,也可以在不同的物理节点上,本说明书中并不对此进行限制。以及逻辑位点区间与对应的物理位点区间的长度相同,也就是说逻辑位点与物理位点之间存在一一对应的关系。
映射关系集合可以被服务器用于切换目标逻辑消息队列对应的物理消息队列,服务器通过对映射关系集合中映射关系的增加、删除或者修改操作,可以使得目标逻辑消息队列对应的物理消息队列增加、减少或者改变。服务器还可以根据该映射关系集合中记录的映射关系,将发送至目标逻辑消息队列中的消息存储至对应的物理消息队列中,可以保证消息存储的有序性。当然,服务器还可以响应于针对目标物理节点的添加指令,可以确定出目标物理节点中部署的目标物理消息队列,服务器可以从维护的逻辑消息队列与物理消息队列的映射关系集合中添加包含目标物理消息队列的映射关系,从而增加目标物理节点用于存储消息,可以使得服务器中用于存储消息的物理节点的数量的增加。
由以上技术方案可见,本说明书中消息队列的服务器可以维护有逻辑消息队列与物理消息队列的映射关系集合,其中逻辑消息队列可以用于与外部系统进行交互,物理消息队列可以用于存储消息,服务器可以根据目标逻辑消息队列与物理消息队列的映射关系,将目标逻辑消息队列接收到的目标消息发送至对应的物理消息队列中,并由物理消息队列对目标消息进行存储,因而在服务器中用于存储消息的物理消息队列的数量发生变更时,服务器仅仅需要对映射关系集合中的映射关系进行更新,而不需要改变逻辑消息队列的数量,从而使得外部系统对于服务器中物理消息队列的数量的变化过程是透明的,那么无需对外部系统进行任何修改,可以避免影响外部系统与服务器的交互过程,提升了服务器系统的可扩展性,同时在本说明书的技术方案中目标消息可以根据变更后的映射关系发送至另一物理消息队列中,而不需要对历史物理消息队列中的数据进行迁移,可以避免额外的资源消耗,从而快速实现物理消息队列的负载均衡,耗时时间短,可以避免数据迁移过程对目标消息的存储与消费过程的影响,可以提升服务器系统的稳定性。
如图6A、6B、6C和6D是本说明书一示例性实施例提供的一种消息处理、消息队列管理方法的方法流程图。以如图1所示的场景为例进行说明,消息队列服务器中可以部署有逻辑消息队列-1和逻辑消息队列-2,消息队列服务器中可以部署有物理节点1和物理节点2,其中物理节点1中包含物理消息队列-1、物理消息队列-2,物理节点2中包含物理消息队列-3、物理消息队列-4。以及,消息队列服务器12中可以包含QueueMapper模块,该模块中维护有逻辑消息队列与物理消息队列的映射关系集合,如下表1所示。
表1
如图6A所示,以消息队列服务器12(以下简称“服务器”)存储生产者11发送的目标消息A为例进行说明,可以包括以下步骤:
步骤602A,接收消息发送请求。
步骤604A,确定目标消息A的目标逻辑位点。
在本实施例中,服务器可以接收到生产者11发送的针对逻辑消息队列-1的消息发送请求,该消息发送请求中可以包含目标消息A,服务器可以先确定目标消息A在逻辑消息队列-1中的目标逻辑位点,例如,服务器可以查询逻辑消息队列-1中的空闲逻辑位点,从而获得该逻辑消息队列-1中0至49的逻辑位点已经被占用,那么服务器还可以为消息发送请求对应的目标消息A配置目标逻辑位点为50。服务器还可以确定该目标逻辑位点50在逻辑消息队列-1中对应的逻辑位点区间为0至100。逻辑位点区间可以根据表1中记录的逻辑消息队列的起始位点和结束位点而获得,同样的,物理位点区间可以根据表1中记录的物理消息队列的起始位点和结束位点而获得。其中,逻辑消息队列的结束位点或者物理消息队列的结束位点记录为“-”标识,不限制逻辑消息队列的结束位点或者物理消息队列的结束位点,该结束位点可以根据需要持续增加,本说明书中并不对此进行限制。
步骤606A,确定目标物理消息队列。
在本实施例中,服务器可以根据预定义的如表1所示的逻辑消息队列与物理消息队列的映射关系,确定逻辑消息队列-1在逻辑位点区间0至100对应的目标物理消息队列为物理消息队列-1。
当然,在本实施例中,在逻辑消息队列-1对应多个物理消息队列的情况下,如上表1所述逻辑消息队列-1对应物理消息队列-1和物理消息队列-3。假设服务器无法确定目标消息A在逻辑消息队列-1中的目标逻辑位点,那么服务器还可以直接将对应的逻辑位点区间中包含空闲逻辑位点的物理消息队列选取为目标物理消息队列。若服务器确定物理消息队列-1和物理消息队列-3中均包含空闲逻辑位点,那么服务器可以预定义的物理消息队列的优先级选取目标物理消息队列,例如,假设物理消息队列-3的优先级高于物理消息队列-1,那么服务器可以选择物理消息队列-3为目标物理消息队列,或者,服务器还可以选取任一物理消息队列为目标物理消息队列,本说明书中并不对此进行限制。
步骤608A,确定目标物理位点。
在本实施例中,服务器可以根据从表1中获得的逻辑消息队列-1的逻辑位点区间和物理消息队列-1的物理位点区间之间的映射关系,可以计算出目标逻辑位点50在物理消息队列-1中的目标物理位点为50。
步骤610A,存储目标消息A。
在本实施例中,服务器可以确定物理消息队列-1被部署于本地节点,那么服务器可以将目标消息A存储至物理消息队列-1对应的目标物理位点50处。
如图6B所示,以消费者13从服务器12消费目标消息B为例进行说明,可以包括以下步骤:
步骤602B,接收到消息处理请求。
在本实施例中,假设逻辑消息队列-2对应的逻辑位点区间0至100已经被占用,也就是,逻辑消息队列-2的逻辑位点区间0至100对应的物理消息队列-2的物理位点区间0至100处已经存储了消息。
在本实施例中,服务器可以接收到消费者13发送的针对逻辑消息队列-2的消息处理请求,其中,该消息处理请求中可以包含需要被消费的目标消息B在逻辑消息队列-2中的目标逻辑位点为20。那么服务器可以从消息处理请求中获取目标消息B在逻辑消息队列-2中的目标逻辑位点20,并且服务器还可以进一步确定该目标逻辑位点20对应的逻辑消息队列-2的逻辑位点区间为0至“-”的区间。其中,消费者13可以为用于读取消息的客户端或者服务端等,本说明书中并不对此进行限制。
步骤604B,确定目标物理消息队列。
在本实施例中,服务器可以根据从表1中获得的逻辑消息队列的逻辑位点区间以及相应的物理消息队列的映射关系,其中逻辑位点区间可以根据表1中记录的逻辑消息队列的起始位点和逻辑消息队列的结束位点而获得,服务器可以确定逻辑消息队列-2的逻辑位点区间0至“-”的区间对应的目标物理消息队列为物理消息队列-2。
步骤606B,确定目标物理位点。
在本实施例中,服务器可以根据表1中记录的逻辑消息队列-2的逻辑位点区间、物理消息队列-2的物理位点区间以及目标消息B在逻辑消息队列-2中的目标逻辑位点20,可以计算出目标逻辑位点20在物理消息队列-1中的目标物理位点也为20。
步骤608B,获取并反馈目标消息B。
在本实施例中,服务器可以确定物理消息队列-2被部署于本地物理节点1中,那么服务器可以从物理消息队列-2对应的目标物理位点20处读取该目标消息B并且可以将该目标消息B反馈至消费者13。
如图6C所示,以服务器12中新增物理节点3为例进行说明,可以包括以下步骤:
步骤602C,确定新增物理节点3中部署的物理消息队列。
在本实施例中,在对服务器进行系统扩容时,假设新增了物理节点3,那么服务器可以获取物理节点3中部署的所有的物理消息队列的信息,获取到该物理节点3中部署的三个消息队列为物理消息队列-5、物理消息队列-6和物理消息队列-7。
步骤604C,接收到针对目标逻辑消息队列-2的管理指令。
在本实施例中,服务器中还可以接收到针对目标逻辑消息队列-2的扩容指令,该扩容指令中可以包含将逻辑消息队列-2接收到的消息存储至物理节点3中的逻辑消息队列-5中,其中该扩容指令可以由相应的管理人员发送或者由服务器自动生成,本说明书中并不对此进行限制。
在本实施例中,服务器可以监测逻辑消息队列-2中的消息量,并且在消息量达到预设的第一消息量阈值时,服务器可以自动生成扩容指令,例如第一消息量阈值可以为200,当然该第一消息量阈值可以根据实际需要进行设定,本说明书中并不对此进行限制。
步骤606C,生成映射关系。
在本实施例中,服务器可以根据该扩容指令创建逻辑消息队列-2与物理节点3中的物理消息队列-5的映射关系,如下表2所示。服务器还可以监测逻辑消息队列-2的消息量,并且在消息量不大于预设的第二消息量阈值时,服务器还可以自动删除逻辑消息队列-2与物理消息队列-5的映射关系,例如该第二消息量阈值可以为180,当然该第二消息量阈值可以根据实际需要进行设定,本说明书中并不对此进行限制。
表2
步骤608C,为物理消息队列-5配置逻辑位点区间。
在本实施例中,服务器可以为物理消息队列-5配置相应的逻辑位点区间,并且可以为配置的逻辑位点区间确定对应的物理位点区间,如上表2所示,为物理消息队列-5配置物理位点区间0至“-”。此时,发送至逻辑消息队列-2中逻辑位点区间200至“-”的消息都会被存储至物理节点3中的物理消息队列-5中,实现了逻辑消息队列-2对应的物理节点的数量的增加,可以实现对消息队列服务器12的扩容。
在本实施例中,在如表2所示的映射关系集合中,逻辑消息队列-1或者逻辑消息队列-2的某一逻辑位点区间仅对应一个物理消息队列,并且任一逻辑消息队列对应的所有物理消息队列分别对应的逻辑位点区间之间不存在交集,而同一逻辑消息队列可以对应不同的物理消息队列,逻辑消息队列的逻辑位点与对应的物理消息队列的物理位点之间为一一对应的关系。
如图6D所示,以服务器12中删除物理节点2为例进行说明,可以包括以下步骤:
步骤602D,接收针对物理节点2的删除指令。
在本实施例中,服务器可以接收到针对物理节点2的删除指令,服务器可以确定该物理节点2中所有的物理消息队列的信息,例如获得该物理节点2中部署的两个消息队列为物理消息队列-3和物理消息队列-4。
步骤604D,对映射关系进行删除。
在本实施例中,服务器可以从映射关系集合中删除所有包含“物理消息队列-3”和“物理消息队列-4”的映射关系,例如上表2所示,删除“逻辑消息队列-1”与“物理消息队列-3”的映射关系,得到如下表3所示的映射关系集合。
表3
在本实施例中,服务器还可以在接收到针对物理节点2的删除指令后,等待预设时长后再从映射关系集合中删除包含“物理消息队列-3”和“物理消息队列-4”的映射关系,预设时长可以为12小时、3天或者7天等,本说明书中并不对此进行限制。或者,服务器可以查询物理节点2中存储的消息是否被全部处理完成,在所述物理节点2中存储的消息全部被处理完成的情况下,服务器可以从映射关系集合中删除包含“物理消息队列-3”和“物理消息队列-4”的映射关系。
另外,在本实施例中,服务器在删除“逻辑消息队列-1”与“物理消息队列-3”的映射关系后,可以将“逻辑消息队列-1”与“物理消息队列-1”的映射关系中“逻辑消息队列结束位点”调整为“-”和“物理消息队列结束位点”调整为“-”,或者服务器也可以不调整“逻辑消息队列-1”与“物理消息队列-1”的映射关系中的相关位点,本说明书中并不对此进行限制。
当然,在本实施例中,同一逻辑消息队列可以对应一个物理消息队列,或者同一逻辑消息队列可以对应多个物理消息队列,或者多个逻辑消息队列可以对应同一物理消息队列,例如多个逻辑消息队列可以分别对应同一物理消息队列的不同物理位点区间等,本说明书中并不对此进行限制。
由以上技术方案可见,本说明书中消息队列的服务器可以维护有逻辑消息队列与物理消息队列的映射关系集合,其中逻辑消息队列可以用于与外部系统进行交互,物理消息队列可以用于存储消息,服务器可以根据目标逻辑消息队列与物理消息队列的映射关系,将目标逻辑消息队列接收到的目标消息发送至对应的物理消息队列中,并由物理消息队列对目标消息进行存储,因而在服务器中用于存储消息的物理消息队列的数量发生变更时,服务器仅仅需要对映射关系集合中的映射关系进行更新,而不需要改变逻辑消息队列的数量,从而使得外部系统对于服务器中物理消息队列的数量的变化过程是透明的,那么无需对外部系统进行任何修改,可以避免影响外部系统与服务器的交互过程,提升了服务器系统的可扩展性,同时在本说明书的技术方案中目标消息可以根据变更后的映射关系发送至另一物理消息队列中,而不需要对历史物理消息队列中的数据进行迁移,可以避免额外的资源消耗,从而快速实现物理消息队列的负载均衡,耗时时间短,可以避免数据迁移过程对目标消息的存储与消费过程的影响,可以提升服务器系统的稳定性。
图7是一示例性实施例提供的一种设备的示意结构图。请参考图7,在硬件层面,该设备包括处理器702、内部总线704、网络接口706、内存708以及非易失性存储器710,当然还可能包括其他业务所需要的硬件。处理器702从非易失性存储器710中读取对应的计算机程序到内存708中然后运行,在逻辑层面上形成消息处理装置。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
请参考图8,在软件实施方式中,该消息处理装置可以包括接收单元802、第一物理消息队列确定单元804和发送单元806。其中:
接收单元802,用于接收到针对目标逻辑消息队列发起的消息发送请求;
第一物理消息队列确定单元804,用于根据逻辑消息队列与物理消息队列的映射关系,确定所述目标逻辑消息队列对应的目标物理消息队列;
发送单元806,用于将所述消息发送请求对应的目标消息发送至所述目标物理消息队列中。
可选的,第一物理消息队列确定单元804具体用于:
在所述目标逻辑消息队列对应多个物理消息队列的情况下,确定所述目标消息在所述目标逻辑消息队列中对应的目标逻辑位点;
其中,所述目标物理消息队列为所述目标逻辑位点所处的逻辑位点区间对应的物理消息队列。
可选的,发送单元806具体用于:
确定所述目标逻辑位点在所述目标物理消息队列中对应的目标物理位点;
将所述目标消息发送至所述目标物理位点处。
可选的,第一物理消息队列确定单元804具体用于:
在所述目标逻辑消息队列对应多个物理消息队列的情况下,将对应的逻辑位点区间中包含空闲逻辑位点的物理消息队列选取为所述目标物理消息队列。
可选的,第一物理消息队列确定单元804具体用于:
在对应的逻辑位点区间中包含空闲逻辑位点的物理消息队列的数量为多个的情况下,选取最高优先级对应的物理消息队列或选取任意一个物理消息队列为所述目标物理消息队列。
可选的,所述目标物理消息队列被部署于本地节点;
可选的,在所述目标物理消息队列被部署于区别于本地节点的另一物理节点的情况下,还包括:
目标消息发送单元808,用于将所述目标消息发送至所述另一物理节点,以由所述另一物理节点将所述目标消息发送至所述目标物理消息队列中。
可选的,还包括:
映射关系变更单元810,用于根据接收到的针对所述目标逻辑消息队列的映射关系变更指令,对所述映射关系变更指令对应的映射关系进行添加、删除或者修改操作。
请参考图9,在软件实施方式中,该消息处理装置可以包括逻辑位点确定单元902、第二物理消息队列确定单元904和获取与反馈单元906。其中:
逻辑位点确定单元902,用于响应于针对目标逻辑消息队列发起的消息处理请求,确定所述消息处理请求对应的目标消息在所述目标逻辑消息队列中对应的目标逻辑位点;
第二物理消息队列确定单元904,用于根据逻辑位点区间与物理消息队列的映射关系,以及所述目标逻辑位点所处的逻辑位点区间,确定所述目标逻辑位点对应的目标物理消息队列;
获取与反馈单元906,用于触发将所述目标消息从所述目标物理消息队列中获取并反馈至所述消息处理请求的发起方的操作。
可选的,逻辑位点确定单元902具体用于:
响应于客户端发送的针对目标逻辑消息队列的消息处理请求;或者,
响应于区别于本地节点的第一物理节点转发的针对所述目标逻辑消息队列的消息处理请求。
可选的,还包括:
映射关系变更单元908,用于根据接收到的针对所述目标逻辑消息队列的映射关系变更指令,对所述映射关系变更指令对应的映射关系进行添加、删除或者修改操作。
可选的,获取与反馈单元906具体用于:
确定所述目标逻辑位点在所述目标物理消息队列中对应的目标物理位点;
触发将所述目标消息从所述目标物理消息队列中对应的目标物理位点处获取并反馈至所述消息处理请求的发起方的操作。
可选的,获取与反馈单元906具体用于:
在所述目标物理消息队列被部署于本地节点的情况下,将所述目标消息从所述目标物理消息队列中获取并反馈至所述消息处理请求的发起方;或者,
在所述目标物理消息队列被部署于区别于本地节点的第二物理节点的情况下,将所述消息处理请求发送至所述第二物理节点,以使得所述第二物理节点将所述目标消息从所述目标物理消息队列中获取并反馈至所述消息处理请求的发起方;或者,
在所述目标物理消息队列被部署于所述第二物理节点的情况下,将所述消息处理请求发送至所述第二物理节点,接收所述第二物理节点返回的所述目标消息并反馈至所述消息处理请求的发起方。
图10是一示例性实施例提供的一种设备的示意结构图。请参考图10,在硬件层面,该设备包括处理器1002、内部总线1004、网络接口1006、内存1008以及非易失性存储器1010,当然还可能包括其他业务所需要的硬件。处理器1002从非易失性存储器1010中读取对应的计算机程序到内存1008中然后运行,在逻辑层面上形成消息队列管理装置。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
请参考图11,在软件实施方式中,该消息队列管理装置可以包括第三物理消息队列确定单元1102和映射关系生成单元1104。其中:
第三物理消息队列确定单元1102,用于确定目标物理节点中部署的目标物理消息队列;
映射关系生成单元1104,用于响应于针对目标逻辑消息队列的管理指令,生成所述目标逻辑消息队列与所述目标物理消息队列之间的映射关系。
可选的,映射关系生成单元1104具体用于:
创建所述目标逻辑消息队列与所述目标物理消息队列之间的映射关系;或者,
通过对包含所述目标逻辑消息队列的历史映射关系进行修改,获得所述目标逻辑消息队列与所述目标物理消息队列之间的映射关系。
可选的,还包括:
配置单元1106,用于为所述目标物理消息队列配置相应的逻辑位点区间,且所述目标物理消息队列与所述目标逻辑消息队列对应的其他物理消息队列分别对应的逻辑位点区间之间不存在交集。
可选的,还包括:
监测单元1108,用于监测所述目标逻辑消息队列的消息量;
生成单元1110,用于在所述消息量达到预设的第一消息量阈值的情况下,生成所述管理指令。
可选的,还包括:
删除单元1112,用于在所述消息量不大于预设的第二消息量阈值的情况下,自动删除所述目标逻辑消息队列与所述目标物理消息队列之间的映射关系。
请参考图12,在软件实施方式中,该消息队列管理装置可以包括第四物理消息队列确定单元1202和映射关系删除单元1204。其中:
第四物理消息队列确定单元1202,用于响应于针对目标物理节点的删除指令,确定所述目标物理节点中部署的目标物理消息队列;
映射关系删除单元1204,用于在已建立的逻辑消息队列与物理消息队列之间的映射关系集合中,删除包含所述目标物理消息队列的映射关系。
可选的,映射关系删除单元1204具体用于:
在经过预设时长和/或确定所述目标物理消息队列中存储的消息全部被处理完成的情况下,删除包含所述目标物理消息队列的映射关系。
请参考图13,在软件实施方式中,该消息队列管理装置可以包括第五物理消息队列确定单元1302和映射关系添加单元1304。其中:
第五物理消息队列确定单元1302,用于响应于针对目标物理节点的添加指令,确定所述目标物理节点中部署的目标物理消息队列;
映射关系添加单元1304,用于在已建立的逻辑消息队列与物理消息队列的映射关系集合中,添加包含所述目标物理消息队列的映射关系。
可选的,映射关系添加单元1304具体用于:
创建包含所述目标物理消息队列的映射关系;或者,通过对已建立的逻辑消息队列与物理消息队列的历史映射关系进行修改,获得包含所述目标物理消息队列的映射关系。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
在一个典型的配置中,计算机包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本说明书一个或多个实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。
Claims (25)
1.一种消息处理方法,其特征在于,包括:
接收到针对目标逻辑消息队列发起的消息发送请求;
根据逻辑消息队列与物理消息队列的映射关系,确定所述目标逻辑消息队列对应的目标物理消息队列;
将所述消息发送请求对应的目标消息发送至所述目标物理消息队列中;
所述确定所述目标逻辑消息队列对应的目标物理消息队列,包括:
在所述目标逻辑消息队列对应多个物理消息队列的情况下,确定所述目标消息在所述目标逻辑消息队列中对应的目标逻辑位点;
其中,所述目标物理消息队列为所述目标逻辑位点所处的逻辑位点区间对应的物理消息队列。
2.根据权利要求1所述的方法,其特征在于,将所述消息发送请求对应的目标消息发送至所述目标物理消息队列中,包括:
确定所述目标逻辑位点在所述目标物理消息队列中对应的目标物理位点;
将所述目标消息发送至所述目标物理位点处。
3.根据权利要求1所述的方法,其特征在于,确定所述目标逻辑消息队列对应的目标物理消息队列,包括:
在所述目标逻辑消息队列对应多个物理消息队列的情况下,将对应的逻辑位点区间中包含空闲逻辑位点的物理消息队列选取为所述目标物理消息队列。
4.根据权利要求3所述的方法,其特征在于,将对应的逻辑位点区间中包含空闲逻辑位点的物理消息队列选取为所述目标物理消息队列,包括:
在对应的逻辑位点区间中包含空闲逻辑位点的物理消息队列的数量为多个的情况下,选取最高优先级对应的物理消息队列或选取任意一个物理消息队列为所述目标物理消息队列。
5.根据权利要求1所述的方法,其特征在于,
所述目标物理消息队列被部署于本地节点;或者,
在所述目标物理消息队列被部署于区别于本地节点的另一物理节点的情况下,所述方法还包括:将所述目标消息发送至所述另一物理节点,以由所述另一物理节点将所述目标消息发送至所述目标物理消息队列中。
6.根据权利要求1所述的方法,其特征在于,还包括:
根据接收到的针对所述目标逻辑消息队列的映射关系变更指令,对所述映射关系变更指令对应的映射关系进行添加、删除或者修改操作。
7.一种消息处理方法,其特征在于,包括:
响应于针对目标逻辑消息队列发起的消息处理请求,确定所述消息处理请求对应的目标消息在所述目标逻辑消息队列中对应的目标逻辑位点;
根据逻辑位点区间与物理消息队列的映射关系,以及所述目标逻辑位点所处的逻辑位点区间,确定所述目标逻辑位点对应的目标物理消息队列;
触发将所述目标消息从所述目标物理消息队列中获取并反馈至所述消息处理请求的发起方的操作。
8.根据权利要求7所述的方法,其特征在于,响应于针对目标逻辑消息队列发起的消息处理请求,包括:
响应于客户端发送的针对目标逻辑消息队列的消息处理请求;或者,
响应于区别于本地节点的第一物理节点转发的针对所述目标逻辑消息队列的消息处理请求。
9.根据权利要求7所述的方法,其特征在于,还包括:
根据接收到的针对所述目标逻辑消息队列的映射关系变更指令,对所述映射关系变更指令对应的映射关系进行添加、删除或者修改操作。
10.根据权利要求7所述的方法,其特征在于,触发将所述目标消息从所述目标物理消息队列中获取并反馈至所述消息处理请求的发起方的操作,包括:
确定所述目标逻辑位点在所述目标物理消息队列中对应的目标物理位点;
触发将所述目标消息从所述目标物理消息队列中对应的目标物理位点处获取并反馈至所述消息处理请求的发起方的操作。
11.根据权利要求7所述的方法,其特征在于,触发将所述目标消息从所述目标物理消息队列中获取并反馈至所述消息处理请求的发起方的操作,包括:
在所述目标物理消息队列被部署于本地节点的情况下,将所述目标消息从所述目标物理消息队列中获取并反馈至所述消息处理请求的发起方;或者,
在所述目标物理消息队列被部署于区别于本地节点的第二物理节点的情况下,将所述消息处理请求发送至所述第二物理节点,以使得所述第二物理节点将所述目标消息从所述目标物理消息队列中获取并反馈至所述消息处理请求的发起方;或者,
在所述目标物理消息队列被部署于所述第二物理节点的情况下,将所述消息处理请求发送至所述第二物理节点,接收所述第二物理节点返回的所述目标消息并反馈至所述消息处理请求的发起方。
12.一种消息队列管理方法,其特征在于,包括:
确定目标物理节点中部署的目标物理消息队列;
响应于针对目标逻辑消息队列的管理指令,生成所述目标逻辑消息队列与所述目标物理消息队列之间的映射关系;
所述方法还包括:
为所述目标物理消息队列配置相应的逻辑位点区间,且所述目标物理消息队列与所述目标逻辑消息队列对应的其他物理消息队列分别对应的逻辑位点区间之间不存在交集。
13.根据权利要求12所述的方法,其特征在于,生成所述目标逻辑消息队列与所述目标物理消息队列之间的映射关系,包括:
创建所述目标逻辑消息队列与所述目标物理消息队列之间的映射关系;或者,
通过对包含所述目标逻辑消息队列的历史映射关系进行修改,获得所述目标逻辑消息队列与所述目标物理消息队列之间的映射关系。
14.根据权利要求12所述的方法,其特征在于,还包括:
监测所述目标逻辑消息队列的消息量;
在所述消息量达到预设的第一消息量阈值的情况下,生成所述管理指令。
15.根据权利要求14所述的方法,其特征在于,还包括:
在所述消息量不大于预设的第二消息量阈值的情况下,自动删除所述目标逻辑消息队列与所述目标物理消息队列之间的映射关系。
16.一种消息队列管理方法,其特征在于,包括:
响应于针对目标物理节点的删除指令,确定所述目标物理节点中部署的目标物理消息队列;
在已建立的逻辑消息队列与物理消息队列之间的映射关系集合中,删除包含所述目标物理消息队列的映射关系;
所述删除包含所述目标物理消息队列的映射关系,包括:
在经过预设时长和/或确定所述目标物理消息队列中存储的消息全部被处理完成的情况下,删除包含所述目标物理消息队列的映射关系。
17.一种消息队列管理方法,其特征在于,包括:
响应于针对目标物理节点的添加指令,确定所述目标物理节点中部署的目标物理消息队列;
在已建立的逻辑消息队列与物理消息队列的映射关系集合中,生成包含所述目标物理消息队列的映射关系;
所述方法还包括:
为所述目标物理消息队列配置相应的逻辑位点区间,且所述目标物理消息队列与目标逻辑消息队列对应的其他物理消息队列分别对应的逻辑位点区间之间不存在交集。
18.根据权利要求17所述的方法,其特征在于,生成包含所述目标物理消息队列的映射关系,包括:
创建包含所述目标物理消息队列的映射关系;或者,通过对已建立的逻辑消息队列与物理消息队列的历史映射关系进行修改,获得包含所述目标物理消息队列的映射关系。
19.一种消息处理装置,其特征在于,包括:
接收单元,用于接收到针对目标逻辑消息队列发起的消息发送请求;
第一物理消息队列确定单元,用于根据逻辑消息队列与物理消息队列的映射关系,确定所述目标逻辑消息队列对应的目标物理消息队列;
发送单元,用于将所述消息发送请求对应的目标消息发送至所述目标物理消息队列中;
所述确定所述目标逻辑消息队列对应的目标物理消息队列,包括:
在所述目标逻辑消息队列对应多个物理消息队列的情况下,确定所述目标消息在所述目标逻辑消息队列中对应的目标逻辑位点;
其中,所述目标物理消息队列为所述目标逻辑位点所处的逻辑位点区间对应的物理消息队列。
20.一种消息处理装置,其特征在于,包括:
逻辑位点确定单元,用于响应于针对目标逻辑消息队列发起的消息处理请求,确定所述消息处理请求对应的目标消息在所述目标逻辑消息队列中对应的目标逻辑位点;
第二物理消息队列确定单元,用于根据逻辑位点区间与物理消息队列的映射关系,以及所述目标逻辑位点所处的逻辑位点区间,确定所述目标逻辑位点对应的目标物理消息队列;
获取与反馈单元,用于触发将所述目标消息从所述目标物理消息队列中获取并反馈至所述消息处理请求的发起方的操作。
21.一种消息队列管理装置,其特征在于,包括:
第三物理消息队列确定单元,用于确定目标物理节点中部署的目标物理消息队列;
映射关系生成单元,用于响应于针对目标逻辑消息队列的管理指令,生成所述目标逻辑消息队列与所述目标物理消息队列之间的映射关系;
所述装置还包括:
配置单元,用于为所述目标物理消息队列配置相应的逻辑位点区间,且所述目标物理消息队列与所述目标逻辑消息队列对应的其他物理消息队列分别对应的逻辑位点区间之间不存在交集。
22.一种消息队列管理装置,其特征在于,包括:
第四物理消息队列确定单元,用于响应于针对目标物理节点的删除指令,确定所述目标物理节点中部署的目标物理消息队列;
映射关系删除单元,用于在已建立的逻辑消息队列与物理消息队列之间的映射关系集合中,删除包含所述目标物理消息队列的映射关系;
所述删除包含所述目标物理消息队列的映射关系,包括:
在经过预设时长和/或确定所述目标物理消息队列中存储的消息全部被处理完成的情况下,删除包含所述目标物理消息队列的映射关系。
23.一种消息队列管理装置,其特征在于,包括:
第五物理消息队列确定单元,用于响应于针对目标物理节点的添加指令,确定所述目标物理节点中部署的目标物理消息队列;
映射关系添加单元,用于在已建立的逻辑消息队列与物理消息队列的映射关系集合中,添加包含所述目标物理消息队列的映射关系;
配置单元,用于为所述目标物理消息队列配置相应的逻辑位点区间,且所述目标物理消息队列与目标逻辑消息队列对应的其他物理消息队列分别对应的逻辑位点区间之间不存在交集。
24.一种电子设备,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现如权利要求1-18中任一项所述的方法。
25.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,该指令被处理器执行时实现如权利要求1-18中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010607491.1A CN113296970B (zh) | 2020-06-29 | 2020-06-29 | 消息处理、消息队列管理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010607491.1A CN113296970B (zh) | 2020-06-29 | 2020-06-29 | 消息处理、消息队列管理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113296970A CN113296970A (zh) | 2021-08-24 |
CN113296970B true CN113296970B (zh) | 2024-03-01 |
Family
ID=77318073
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010607491.1A Active CN113296970B (zh) | 2020-06-29 | 2020-06-29 | 消息处理、消息队列管理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113296970B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101459627A (zh) * | 2008-04-07 | 2009-06-17 | 中兴通讯股份有限公司 | 消息管理方法 |
US8261286B1 (en) * | 2008-06-18 | 2012-09-04 | Amazon Technologies, Inc. | Fast sequential message store |
CN103761190A (zh) * | 2013-12-19 | 2014-04-30 | 华为技术有限公司 | 数据处理方法及装置 |
CN104754013A (zh) * | 2013-12-31 | 2015-07-01 | 中国移动通信集团公司 | 一种云计算平台的网络资源控制方法、装置及系统 |
CN106471489A (zh) * | 2014-06-30 | 2017-03-01 | 微软技术许可有限责任公司 | 管理具有灵活模式的数据 |
CN109783227A (zh) * | 2018-12-13 | 2019-05-21 | 平安科技(深圳)有限公司 | 任务分配方法、装置、系统及计算机可读存储介质 |
CN110430255A (zh) * | 2019-07-31 | 2019-11-08 | 阿里巴巴集团控股有限公司 | 分布式集群中服务请求的处理方法、系统以及电子设备 |
CN110493734A (zh) * | 2019-07-22 | 2019-11-22 | 苏宁云计算有限公司 | 短信发送的通道选择方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8335157B2 (en) * | 2010-05-17 | 2012-12-18 | Cisco Technology, Inc. | Adaptive queue-management |
-
2020
- 2020-06-29 CN CN202010607491.1A patent/CN113296970B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101459627A (zh) * | 2008-04-07 | 2009-06-17 | 中兴通讯股份有限公司 | 消息管理方法 |
US8261286B1 (en) * | 2008-06-18 | 2012-09-04 | Amazon Technologies, Inc. | Fast sequential message store |
CN103761190A (zh) * | 2013-12-19 | 2014-04-30 | 华为技术有限公司 | 数据处理方法及装置 |
CN104754013A (zh) * | 2013-12-31 | 2015-07-01 | 中国移动通信集团公司 | 一种云计算平台的网络资源控制方法、装置及系统 |
CN106471489A (zh) * | 2014-06-30 | 2017-03-01 | 微软技术许可有限责任公司 | 管理具有灵活模式的数据 |
CN109783227A (zh) * | 2018-12-13 | 2019-05-21 | 平安科技(深圳)有限公司 | 任务分配方法、装置、系统及计算机可读存储介质 |
CN110493734A (zh) * | 2019-07-22 | 2019-11-22 | 苏宁云计算有限公司 | 短信发送的通道选择方法和装置 |
CN110430255A (zh) * | 2019-07-31 | 2019-11-08 | 阿里巴巴集团控股有限公司 | 分布式集群中服务请求的处理方法、系统以及电子设备 |
Non-Patent Citations (1)
Title |
---|
一种面向自相似业务的新型主动队列管理算法;杨晗;杨天明;;计算机应用研究(04);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113296970A (zh) | 2021-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3221795B1 (en) | Service addressing in distributed environment | |
TWI694700B (zh) | 資料處理方法和裝置、用戶端 | |
CN109033360B (zh) | 一种数据查询方法、装置、服务器及存储介质 | |
EP3779692B1 (en) | Blockchain data processing | |
CN112947860B (zh) | 一种分布式数据副本的分级存储与调度方法 | |
EP3384384A1 (en) | Methods and devices for acquiring data using virtual machine and host machine | |
CN110019048A (zh) | 基于MongoDB的文件处理方法、装置、系统及服务器 | |
CN108446308A (zh) | 可扩展分布式数据库的系统和方法 | |
US10057348B2 (en) | Storage fabric address based data block retrieval | |
CN108399175B (zh) | 一种数据存储、查询方法及其装置 | |
CN115114359A (zh) | 用户数据处理方法及装置 | |
CN112650729B (zh) | 一种分布式文件系统的权限管理方法、系统以及存储介质 | |
CN113296970B (zh) | 消息处理、消息队列管理方法及装置 | |
CN107181773A (zh) | 分布式存储系统的数据存储及数据管理方法、设备 | |
CN114785662B (zh) | 一种存储管理方法、装置、设备及机器可读存储介质 | |
US10909077B2 (en) | File slack leveraging | |
CN115129789A (zh) | 一种分布式对象存储系统的桶索引存储方法、装置及介质 | |
CN115914404A (zh) | 集群流量管理方法、装置、计算机设备和存储介质 | |
US8832176B1 (en) | Method and system for processing a large collection of documents | |
CN111147226A (zh) | 数据存储方法、装置及存储介质 | |
CN115421856A (zh) | 一种数据恢复方法及装置 | |
CN109101514A (zh) | 数据导入方法及装置 | |
CN111399753B (zh) | 写入图片的方法和装置 | |
CN110597849B (zh) | 数据查询方法及装置 | |
CN111966533A (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40057553 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |