一种并行处理消息的方法、装置、节点及服务器集群制造方法及图纸

技术编号:7996235 阅读:251 留言:0更新日期:2012-11-22 05:04
本申请提供了一种并行处理消息的方法、装置、节点及服务器集群,所述方法包括:从预置的配置数据库中获取线程分配规则和消息分配规则;所述线程分配规则用于表示集群中的每个处理节点所拥有的线程个数,所述消息分配规则用于表示待处理的消息由哪个线程进行处理;依据所述线程分配规则创建每个处理节点对应的多个线程;触发所述创建的多个线程按照所述消息分配规则从消息源领取消息,并进行处理。采用本申请实施例提供的方法、装置、节点或服务器集群,可以解决现有技术中单线程领取消息导致的影响消息处理的实时性和服务器的吞吐量的技术问题。

【技术实现步骤摘要】

本申请涉及网络数据处理领域,特别涉及ー种并行处理消息的方法、装置、节点及服务器集群
技术介绍
在P4P(Pay for performance,按效果付费)系统可以处理P4P用户在竞价平台(BP)中由于操作推广信息产生的消息,并将该消息实时更新到搜索引擎中,以使用户快速完成信息在搜索引擎中的推广。由于竞价平台是提供给用户使用的并发WEB系统,所以用户消息量相对较大,并且对于单个用户的消息一定要保证时间上的顺序性,所以如何保证整个P4P系统的实时性和呑吐量就成为ー个难题。现有技术中,在保证P4P系统的实时性和呑吐量时,一般通过如下方法预先将消 息配置为按线程的不同分为各个不同的组,ー组消息对应ー个处理该组消息的独立线程;当P4P系统接收到用户发送的处理消息的请求时,每个独立线程都领取预先给其配置的处理消息来执行。其中,ー个独立线程对应的消息组中的所有消息处理按时间顺序,从而保证了局部一致性;而多个独立线程之间则完全并行处理。其中,线程是操作系统中CPU调度的基本単位,代表着ー个CPU作业过程。而并行的含义则是,让多个处理単元(例如线程)同时独立进行业务计算,并行机制使得现在的计算机应用呑吐量得到大幅提升。上述的局部一致性可以理解为,在整个消息大集合中,存在很多小集合,而这些小集合是按一定业务规则(例如按线程)划分的,各个小集合内部的消息处理顺序需要与消息产生的时间顺序一致,但不同小集合之间的消息处理是没有前后顺序的,这就是局部一致性。但是上述现有技术存在一个问题,就是存在ー个专门领取消息的独立线程,该独立线程将消息按顺序子集分组,再对应分给多线程并行执行。这就使得在多个线程处理消息之前的领取过程,会在消息海量增长的时候,变得非常缓慢和耗时,这势必会影响消息处理的实时性和服务器的呑吐量。总之,目前需要本领域技术人员迫切解决的ー个技术问题就是如何能够创新的提出ー种并行处理消息的方法,以解决现有技术中单线程领取消息导致的影响消息处理的实时性和服务器的呑吐量的技术问题。
技术实现思路
本申请所要解决的技术问题是提供ー种并行处理消息的方法,用以解决现有技术中单线程领取消息导致的影响消息处理的实时性和服务器的呑吐量的技术问题。本申请还提供了ー种并行处理消息的装置、节点及服务器集群,用以保证上述方法在实际中的实现及应用。为了解决上述问题,本申请公开了ー种并行处理消息的方法,包括从预置的配置数据库中获取线程分配规则和消息分配规则;所述线程分配规则用于表示集群中的每个处理节点所拥有的线程个数,所述消息分配规则用于表示待处理的消息由哪个线程进行处理;依据所述线程分配规则创建每个处理节点对应的多个线程;触发所述创建的多个线程按照所述消息分配规则从消息源领取消息,并进行处理。优选的,一个所述线程按照所述消息分配规则从消息源中领取对应的消息,包括 将请求处理消息的用户标识编号按照所述线程个数进行取模运算;线程编号与所述运算结果匹配的线程从所述消息源中领取所述用户标识触发的消息。优选的,还包括对所述线程分配规则和消息分配规则进行更新。优选的,还包括依据所述处理节点的CPU数量和/或内存參数设置所述线程分配规则。本申请公开了ー种并行处理消息的装置,包括获取模块,用于从预置的配置数据库中获取线程分配规则和消息分配规则;所述线程分配规则用于表示集群中的每个处理节点所拥有的线程个数,所述消息分配规则用于表示待处理的消息由哪个线程进行处理;创建模块,用于依据所述线程分配规则创建每个处理节点对应的多个线程;触发模块,用于触发所述创建的多个线程按照所述消息分配规则从消息源领取消息,并进行处理。优选的,所述触发模块包括运算子模块和触发子模块,其中所述运算子模块用于将请求处理消息的用户标识编号按照所述线程个数进行取模运算;所述触发子模块用于触发线程编号与所述运算结果匹配的线程从所述消息源中领取所述用户标识触发的消息。优选的,还包括更新模块,用于对所述线程分配规则和消息分配规则进行更新。优选的,还包括设置模块,用于依据所述处理节点的CPU数量和/或内存參数设置所述线程分配规则。本申请公开了ー种并行处理消息的节点,包括前述任ー项并行处理消息的装置。本申请公开了一种服务器集群,包括至少两个前述的并行处理消息的节点。与现有技术相比,本申请包括以下优点在本申请中,通过建立线程与包括其需要处理消息的顺序子集的关联,从而能够实现线程领取消息过程的并行性,提高了节点处理消息的实时性,从而带来服务器集群的呑吐量和实时性的提升。进ー步的,还能够更为方便和高效的实现对服务器集群扩容,更加适应于目前网络应用场景。当然,实施本申请的任ー产品并不一定需要同时达到以上所述的所有优点。附图说明为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的ー些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图I是本申请的ー种并行处理消息的方法实施例I的流程图;图2是方法实施例I中步骤103的流程图;图3是本申请的ー种并行处理消息的方法实施例2的流程图; 图4是本申请的方法实施例2在实际应用中的结构框图;图5是本申请的ー种并行处理消息的装置实施例I的结构框图;图6是装置实施例I中触发模块503的结构框图;图7是本申请的ー种并行处理消息的装置实施例2的结构框图。具体实施例方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。本申请可用于众多通用或专用的计算装置环境或配置中。例如个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器装置、包括以上任何装置或设备的分布式计算环境等等。本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。本申请的主要思想之一可以包括,通过建立线程与包括其需要处理消息的顺序子集的关联,从而能够实现线程领取消息过程的并行性,提高了节点处理消息的实时性,从而带来服务器集群的吞吐量和实时性的提升。參考图1,示出了本申请ー种并行处理消息的方法实施例I的流程图,可以包括以下步骤步骤101 :从预置的配置数据库中获取线程分配规则和消息分配规则;所述线程分配规则用于表示集群中的每个处理节点所拥有的线程个数,所述消息分配规则用于表示待处理的消息由哪个线程进行处理。本申请实施例中预置的配置数据库,专门用来保存预先配置的线程分配规则和消息分配规则,所述线程分配规则用于表示集群中的每个处理节点所拥有的线程个数,例如,当线程分配规则表示的集群中的每个处理节点所拥有的线程个数为80时,就需要为服务器集群中的处理节点配置80个线程用本文档来自技高网
...

【技术保护点】
一种并行处理消息的方法,其特征在于,该方法包括:从预置的配置数据库中获取线程分配规则和消息分配规则;所述线程分配规则用于表示集群中的每个处理节点所拥有的线程个数,所述消息分配规则用于表示待处理的消息由哪个线程进行处理;依据所述线程分配规则创建每个处理节点对应的多个线程;触发所述创建的多个线程按照所述消息分配规则从消息源领取消息,并进行处理。

【技术特征摘要】

【专利技术属性】
技术研发人员:李彦超桑植韩众鸼雷继斌
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:

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

1