CN110532067A - 事件处理方法、装置、设备及存储介质 - Google Patents
事件处理方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN110532067A CN110532067A CN201810545759.6A CN201810545759A CN110532067A CN 110532067 A CN110532067 A CN 110532067A CN 201810545759 A CN201810545759 A CN 201810545759A CN 110532067 A CN110532067 A CN 110532067A
- Authority
- CN
- China
- Prior art keywords
- event
- queue
- type
- event queue
- types
- 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
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
-
- 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/466—Transaction processing
-
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种事件处理方法、装置、设备及存储介质,属于大数据技术领域。所述方法包括:当分布式系统中产生事件时,获取事件的事件类型;基于事件类型,从多个事件队列中确定目标事件队列,多个事件队列用于分别缓存多种事件类型的事件;将事件入列至目标事件队列中;当事件从目标事件队列出列时,对事件进行处理。本发明通过设计多种事件类型以及多个事件队列,将每个事件按照事件类型,分别入列至对应的事件队列中,提高了事件队列的数量,从而提高了事件队列的总容量,提升了分布式系统缓存事件的能力,极大地改善了分布式系统的性能,并降低分布式系统丢失事件的概率,提升分布式系统的稳定性和可用性。
Description
技术领域
本发明涉及大数据技术领域,特别涉及一种事件处理方法、装置、设备及存储介质。
背景技术
分布式系统是指一组通过网络进行通信、协调工作从而完成共同的任务的节点设备组成的系统。在任务执行的各个阶段,分布式系统会由于执行任务的过程,产生相应的事件,例如在执行统计车牌数据的任务的过程中,分布式系统会产生向存储系统写入车牌数据的事件。分布式系统需要对产生的事件进行处理,以便完成任务。
以分布式系统基于Spark架构运行为例,Spark架构中包括client节点,client节点可以包括用于处理事件的事件处理模块,基于Spark架构,client节点在初始化时会创建一个事件队列,事件队列用于缓存向事件处理模块发送的事件,在处理任务的过程中,每当任一事件产生时,client节点就会将事件入列至该事件队列,当事件队列中的事件排在队首时,client节点会将事件从事件队列中出列,将该事件发送给事件处理模块,通过事件处理模块,可以对事件进行处理。
在实现本发明的过程中,发明人发现相关技术至少存在以下问题:
单个事件队列的容量很小,一旦这一个事件队列中的事件达到容量上限时,就无法容纳新事件,分布式系统也就无法继续处理新事件,影响了分布式系统的处理性能。
发明内容
本发明实施例提供了一种事件处理方法、装置、设备及存储介质,能够解决相关技术中单个事件队列容量有限,导致分布式系统处理性能不高的技术问题。所述技术方案如下:
一方面,提供了一种事件处理方法,所述方法包括:
当分布式系统中产生事件时,获取所述事件的事件类型;
基于所述事件类型,从多个事件队列中确定目标事件队列,所述多个事件队列用于分别缓存多种事件类型的事件;
将所述事件入列至所述目标事件队列中;
当所述事件从所述目标事件队列出列时,对所述事件进行处理。
在一种可能的实现方式中,所述基于所述事件类型,从多个事件队列中确定目标事件队列,包括:
查询路由信息,得到所述事件类型对应的事件队列标识,所述路由信息包括多种事件类型以及对应的多个事件队列标识;
将所述事件队列标识对应的事件队列,作为所述目标事件队列。
在一种可能的实现方式中,所述多个事件队列中任一事件队列的深度与处理对应事件类型的事件的耗时时长正相关。
在一种可能的实现方式中,所述获取所述事件的事件类型之前,所述方法还包括:
为所述多种事件类型,生成多个事件队列。
在一种可能的实现方式中,所述方法还包括:
针对所述多个事件队列中的任一事件队列,通过多个线程,并发向事件处理模块发送所述事件队列中的事件;
通过所述事件处理模块,对所述事件进行处理;
在一种可能的实现方式中,所述多个事件队列中任一事件队列对应的线程的数量,与处理对应事件类型的事件的耗时时长正相关。
所述对所述事件进行处理,包括:
对所述事件与所述事件类型下的至少一个子事件类型进行匹配,得到所述事件匹配的子事件类型;
向所述子事件类型对应的事件处理模块发送所述事件;
通过所述事件处理模块,对所述事件进行处理。
在一种可能的实现方式中,所述多种事件类型中任一种事件类型对应的事件处理模块包括至少两个。
在一种可能的实现方式中,所述多种事件类型中任一种事件类型对应的事件处理模块的数量与处理对应事件类型的事件的耗时时长正相关。
在一种可能的实现方式中,所述多个事件队列包括心跳事件类型对应的事件队列、资源监控事件类型对应的事件队列、资源申请事件类型对应的事件队列、系统文件事件类型对应的事件队列、作业事件类型对应的事件队列以及其他事件类型对应的事件队列中的至少两个。
另一方面,提供了一种事件处理装置,所述装置包括:
获取模块,用于当分布式系统中产生事件时,获取所述事件的事件类型;
确定模块,用于基于所述事件类型,从多个事件队列中确定目标事件队列,所述多个事件队列用于分别缓存多种事件类型的事件;
入列模块,用于将所述事件入列至所述目标事件队列中;
事件处理模块,用于当所述事件从所述目标事件队列出列时,对所述事件进行处理。
在一种可能的实现方式中,所述确定模块,包括:
查询子模块,用于查询路由信息,得到所述事件类型对应的事件队列标识,所述路由信息包括多种事件类型以及对应的多个事件队列标识;
确定子模块,用于将所述事件队列标识对应的事件队列,作为所述目标事件队列。
在一种可能的实现方式中,所述多个事件队列中任一事件队列的深度与处理对应事件类型的事件的耗时时长正相关。
在一种可能的实现方式中,所述装置还包括:
生成模块,用于为所述多种事件类型,生成多个事件队列。
在一种可能的实现方式中,所述装置还包括:
发送模块,用于针对所述多个事件队列中的任一事件队列,通过多个线程,并发向事件处理模块发送所述事件队列中的事件。
在一种可能的实现方式中,所述多个事件队列中任一事件队列对应的线程的数量,与处理对应事件类型的事件的耗时时长正相关。
在一种可能的实现方式中,所述装置还包括:
匹配模块,用于对所述事件与所述事件类型下的至少一个子事件类型进行匹配,得到所述事件匹配的子事件类型;
发送模块,用于向所述子事件类型对应的事件处理模块发送所述事件。
在一种可能的实现方式中,所述多种事件类型中任一种事件类型对应的事件处理模块包括至少两个。
在一种可能的实现方式中,所述多种事件类型中任一种事件类型对应的事件处理模块的数量与处理对应事件类型的事件的耗时时长正相关。
在一种可能的实现方式中,所述多个事件队列包括心跳事件类型对应的事件队列、资源监控事件类型对应的事件队列、资源申请事件类型对应的事件队列、系统文件事件类型对应的事件队列、作业事件类型对应的事件队列以及其他事件类型对应的事件队列中的至少两个。
另一方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现上述事件处理方法。
另一方面,提供了一种计算机可读存储介质,所述存储介质内存储有至少一条指令,所述至少一条指令被处理器执行以实现上述事件处理方法。
本发明实施例提供的技术方案带来的有益效果至少包括:
本发明实施例提供的方法、装置、设备及存储介质,为分布式系统引入了多队列的事件缓存机制,通过设计多种事件类型以及多个事件队列,将每个事件按照事件类型,分别入列至对应的事件队列中,提高了事件队列的数量,从而提高了事件队列的总容量,进而提升了分布式系统缓存事件的能力,极大地改善了分布式系统的性能。尤其是,在分布式系统面临高并发访问的场景下,能够满足分布式系统缓存大量事件的需求。并且,扩充了事件队列容量,通过多个事件队列能够缓存大量事件,避免了事件队列容量不足导致事件频繁丢失的情况,从而提升分布式系统的稳定性和可用性。同时,通过不同的事件队列来缓存不同事件类型的事件,令分布式系统中的大量事件得以分门别类地缓存,不同类型的事件的处理过程不会互相干扰,提高整个分布式系统的处理效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种实施环境的示意图;
图2是本发明实施例提供的一种事件处理方法的流程图;
图3是本发明实施例提供的一种事件处理方法的流程图;
图4是本发明实施例提供的一种事件处理方法的示意图;
图5是本发明实施例提供的一种事件处理装置的结构示意图;
图6是本发明实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是本发明实施例提供的一种实施环境的示意图,该实施环境包括主节点101、至少一个从节点102以及客户端节点103。
主节点101、至少一个从节点102以及客户端节点103通过网络连接,主节点101、至少一个从节点102以及客户端节点103可以组成分布式系统,通过协同工作从而完成任务。例如,客户端节点103可以生成待执行的任务,向主节点101发送待执行的任务,主节点101可以为每个从节点102分配任务,每个从节点102可以执行任务,将任务处理的结果发送给客户端节点103。
该分布式系统的架构包括而不限于spark架构、flink架构、mapreduce架构、storm架构等各种架构。举例来说,当分布式系统基于spark架构运行时,客户端节点103可以为spark架构中的Driver节点,主节点101可以为spark架构中的Cluster Manager节点,即master节点,从节点102可以为spark架构中的Worker节点。
客户端节点103可以为计算机设备,例如为终端或服务器,可以包括个人电脑、笔记本电脑、手机等。主节点101以及至少一个从节点102可以包括服务器、终端等。
图2是本发明实施例提供的一种事件处理方法的流程图,该方法的执行主体为计算机设备,该方法包括以下步骤:
201、当分布式系统中产生事件时,获取该事件的事件类型。
202、基于该事件类型,从多个事件队列中确定目标事件队列,该多个事件队列用于分别缓存多种事件类型的事件。
203、将该事件入列至该目标事件队列中。
204、当该事件从该目标事件队列出列时,对该事件进行处理。
本发明实施例提供的方法,为分布式系统引入了多队列的事件缓存机制,通过设计多种事件类型以及多个事件队列,将每个事件按照事件类型,分别入列至对应的事件队列中,提高了事件队列的数量,从而提高了事件队列的总容量,进而提升了分布式系统缓存事件的能力,极大地改善了分布式系统的性能。尤其是,在分布式系统面临高并发访问的场景下,能够满足分布式系统缓存大量事件的需求。并且,扩充了事件队列容量,通过多个事件队列能够缓存大量事件,避免了事件队列容量不足导致事件频繁丢失的情况,从而提升分布式系统的稳定性和可用性。同时,通过不同的事件队列来缓存不同事件类型的事件,令分布式系统中的大量事件得以分门别类地缓存,不同类型的事件的处理过程不会互相干扰,提高整个分布式系统的处理效率。
在一种可能的实现方式中,该基于该事件类型,从多个事件队列中确定目标事件队列,包括:
查询路由信息,得到该事件类型对应的事件队列标识,该路由信息包括多种事件类型以及对应的多个事件队列标识;
将该事件队列标识对应的事件队列,作为该目标事件队列。
在一种可能的实现方式中,该多个事件队列中任一事件队列的深度与处理对应事件类型的事件的耗时时长正相关。
在一种可能的实现方式中,该获取该事件的事件类型之前,该方法还包括:
为该多种事件类型,生成多个事件队列。
在一种可能的实现方式中,该方法还包括:
针对该多个事件队列中的任一事件队列,通过多个线程,并发向事件处理模块发送该事件队列中的事件;
通过该事件处理模块,对该事件进行处理;
在一种可能的实现方式中,该多个事件队列中任一事件队列对应的线程的数量,与处理对应事件类型的事件的耗时时长正相关。
在一种可能的实现方式中,该对该事件进行处理,包括:
对该事件与该事件类型下的至少一个子事件类型进行匹配,得到该事件匹配的子事件类型;
向该子事件类型对应的事件处理模块发送该事件;
通过该事件处理模块,对该事件进行处理。
在一种可能的实现方式中,该多种事件类型中任一种事件类型对应的事件处理模块包括至少两个。
在一种可能的实现方式中,该多种事件类型中任一种事件类型对应的事件处理模块的数量与处理对应事件类型的事件的耗时时长正相关。
在一种可能的实现方式中,该多个事件队列包括心跳事件类型对应的事件队列、资源监控事件类型对应的事件队列、资源申请事件类型对应的事件队列、系统文件事件类型对应的事件队列、作业事件类型对应的事件队列以及其他事件类型对应的事件队列中的至少两个。
图3是本发明实施例提供的一种事件处理方法的流程图,该方法的执行主体为计算机设备,该计算机设备可以为分布式系统中事件队列所在的节点设备,例如在Spark架构中,该计算机设备可以为driver节点,即客户端节点。该方法包括:
301、计算机设备为多种事件类型,生成多个事件队列。
本实施例中设计了多队列的事件缓存机制,会生成多个事件队列,以便通过多个事件队列,分别缓存不同事件类型的事件。
具体来说,计算机设备可以获取多种事件类型,对于多种事件类型中的每种事件类型,计算机设备可以为该事件类型生成对应的事件队列,从而得到多个事件队列。其中,每个事件队列用于缓存对应事件类型的事件。
多种事件类型:事件类型的划分可以根据分布式系统的业务需求确定,在一种可能的实现中,多种事件类型可以包括心跳事件类型、资源监控事件类型、资源申请事件类型、系统文件事件类型、作业事件类型以及其他事件类型中的至少两项。
以下通过(1)至(6)对上述事件类型进行阐述:
(1)心跳事件类型:包括各种心跳事件,例如可以包括主节点与各个从节点之间的心跳事件、主服务与各个从服务之间的心跳事件、客户端节点与各个从节点之间的心跳事件、客户端节点与主节点之间的心跳事件等。
(2)资源监控事件类型:包括各种获取分布式系统中资源的使用信息的事件,该资源可以包括CPU(Central Processing Unit,中央处理器)、内存、磁盘IO(Input/Output,输入/输出)、网络带宽等。
(3)资源申请事件类型:包括各种申请资源的事件以及回收资源的事件,例如,当作业提交至分布式系统时,申请CPU、内存等资源的事件、触发系统进行gc(GarbageCollection,垃圾回收)的事件、在任务执行结束后对任务申请的资源进行回收的事件。
(4)系统文件事件类型:包括各种与存储系统交互数据的事件,该交互数据包括向存储系统写入数据以及从存储系统读取数据,该存储系统可以包括本机的存储器、hdfs、数据库、硬盘、云存储等,该数据可以包括log日志。
(5)作业事件类型:包括客户端向分布式系统提交作业的事件,当客户端向分布式系统提交作业后,分布式系统会将作业拆分为多个作业阶段,再将每个作业阶段拆分为多个任务,例如,spark架构中的DAG(Directed Acyclic Graph,有向无环图)、Job(作业)、Stage(作业的阶段)、Task(任务)归并为该类事件。
(6)其他事件类型:不属于上述事件类别的所有事件可以归并为其他事件类型。
结合上述(1)至(6)所述的事件类型,计算机设备生成的多个事件队列可以包括心跳事件类型对应的事件队列、资源监控事件类型对应的事件队列、资源申请事件类型对应的事件队列、系统文件事件类型对应的事件队列、作业事件类型对应的事件队列以及其他事件类型对应的事件队列中的至少两项,心跳事件类型对应的事件队列用于缓存属于心跳事件类型的事件,资源监控事件类型对应的事件队列用于缓存属于资源监控类型的事件,资源申请事件类型对应的事件队列用于缓存属于资源申请事件类型的事件,系统文件事件类型对应的事件队列用于缓存属于系统文件事件类型的事件,作业事件类型对应的事件队列用于缓存属于作业事件类型的事件,其他事件类型对应的事件队列用于缓存属于作业事件类型的事件。
示例性地,请参见图4,事件队列可以表示为eventQueue,计算机设备可以为6种事件类型,生成6个事件队列,依次为eventQueue1,eventQueue2,……,eventQueue6,其中eventQueue1为缓存心跳事件类型对应的事件队列,eventQueue2为资源监控事件类型对应的事件队列,以此类推。
本步骤中,通过为多种事件类型,生成了多个事件队列,一方面,通过新增事件队列,提高事件队列的数量,因此提高了事件队列的总容量,也就提升了分布式系统缓存事件的能力,进而提升了分布式系统的性能和扩展性。尤其是,在分布式系统面临高并发访问的场景下,能够满足分布式系统缓存大量事件的需求,提高了分布式计算系统的处理性能。另一方面,通过设置多个事件队列缓存事件,极大降低了事件丢失的概率,避免分布式系统频繁丢失事件的情况,也就避免了分布式系统由于丢失资源清理类的事件引发系统不稳定、不可用的隐患,提升了分布式系统的稳定性和可用性。再一方面,通过生成不同的事件队列来缓存不同事件类型的事件,令分布式系统中的大量事件得以分门别类地缓存,每个事件队列专用于缓存对应事件类型的事件,而无需关注其他事件类型的事件,减轻了单个事件队列的存储压力。
可选地,计算机设备可以获取多个事件队列的深度,按照该多个事件队列的深度,生成多个事件队列,以使每个事件队列的容量满足业务需求。其中,事件队列的深度用于指示事件队列最多容纳的事件的数量,例如,事件队列的深度可以等于事件队列最多容纳的事件的数量,又如,事件队列的深度可以等于事件队列最多容纳的事件的数量与阈值系数之间的比值,该阈值系数可以为80%、60%等。
关于每个事件队列的深度,可选地,多个事件队列中每个事件队列的深度与处理对应事件类型的事件的耗时时长正相关。具体来说,可以结合处理事件的耗时程度,设计每个事件队列的深度,处理某类事件越耗时,则对应的事件队列越深,则该事件队列能缓存的事件的数量也就越多,从而提升了缓存这类事件的能力。同理地,处理某类事件比较迅速,则对应的事件队列越浅。
在一种可能的实现中,对于多个事件类型中的每个事件类型,可以预先根据处理该事件类型的耗时时长,配置该事件类型对应的事件队列的深度,若处理该事件类型的事件的耗时时长较长,可以将该事件类型的事件队列的深度配置地较大,若处理该事件类型的事件的耗时时长较短,可以将该事件类型的事件队列的深度配置地较小,如此,计算机设备可以获取每个事件队列配置的深度,根据事件队列所配置的深度,生成事件队列后,能够实现事件队列的深度与处理对应事件类型的事件的耗时时长正相关的效果。
举例来说,处理心跳事件类型的事件的耗时时长通常较短,则可以设置心跳事件类型的事件队列的深度较小,处理作业事件类型的事件的耗时时长通常较长,则可以设置作业事件类型的事件队列的深度较大。
需要说明的是,上述仅是以事件队列的深度与处理事件的耗时时长正相关为例进行描述,可选地,每个事件队列的深度也可以为默认值或经验值,本实施例对此不做限定。
302、当分布式系统中产生事件时,计算机设备获取事件的事件类型。
分布式系统在运行中可以产生各种事件。在一个示例性场景中,在执行任务的过程中,分布式系统会由于执行任务的过程,触发相应的事件。例如,在Spark架构中,当客户端提交作业后,Driver节点会与Cluster Manager节点建立连接,向Cluster Manager节点注册并申请资源,又如,在执行任务的过程中,各个Worker节点可以向Driver节点发送心跳,再如,Driver节点得到作业后,可以构建DAG图,将DAG图分解成多个作业的阶段,将每个作业的阶段分解成多个任务。当然,分布式系统还可以在其他场景产生其他事件,本实施例对产生事件的场景以及事件的具体类型不做限定。
当产生事件后,计算机设备可以获取该事件的事件类型。具体来说,可以预先配置多个事件类型,当产生事件后,计算机设备可以从预先配置的多个事件类型中,获取与事件匹配的事件类型。
示例性地,可以预先设置事件类型与事件名称之间的对应关系,每个事件类型对应至少一个事件名称,当产生事件后,计算机设备可以获取该事件的名称,查询该对应关系,得到该事件的名称对应的事件类型。
303、计算机设备基于事件类型,从多个事件队列中确定目标事件队列。
计算机设备可以通过事件路由的方式,预先建立事件类型与事件队列之间的对应关系,当确定了事件的事件类型后,可以基于事件类型以及预先建立的对应关系,从多个事件队列中确定事件类型对应的事件队列,将事件类型对应的事件队列作为目标事件队列,以便将生成的事件入列至该目标事件队列中。
在一种可能的实现中,事件类型与事件队列之间的对应关系可以通过路由信息指示。结合路由信息,针对确定目标事件队列的具体过程,计算机设备可以将事件类型作为索引,查询路由信息,得到事件类型对应的事件队列标识,将事件队列标识对应的事件队列,作为目标事件队列。
其中,路由信息用于指示事件类型与事件队列之间的对应关系,路由信息包括多种事件类型以及对应的多个事件队列标识,事件队列标识用于标识对应的事件队列,可以为事件队列的名称、编号等。结合上述步骤301中的6种示例性的事件类型,路由信息可以如下表1所示:
表1
事件类型 | 事件队列标识 |
心跳事件类型 | eventQueue1 |
资源监控事件类型 | eventQueue2 |
资源申请事件类型 | eventQueue3 |
系统文件事件类型 | eventQueue4 |
作业事件类型 | eventQueue5 |
其他事件类型 | eventQueue6 |
304、计算机设备将事件入列至目标事件队列中。
入列(enqueue)是指将事件发送给队列,即将事件插入到队列中,以使事件在队列中进行排队,从而对事件进行缓存。其中,事件队列可以为FIFO(First Input FirstOutput,先入先出)队列,则入列可以为将事件插入到事件队列的队尾。
计算机设备当确定事件的目标事件队列后,可以将事件入列至事件类型对应的目标事件队列,即将事件发送给目标事件队列,也就是将事件插入到目标事件队列的队尾,之后,事件会在目标事件队列中排队,当排在该事件之前的所有事件从目标事件队列中出列后,该事件会在目标事件队列中排在队首,从而得以出列。
可选地,结合上述步骤303以及步骤304,可以通过查询路由信息以及将事件入列至事件队列,实现事件路由的功能,即,可以将产生的每个事件路由至对应的事件队列中,达到事件按类型入列的效果。在一种可能的实施例中,可以将上述步骤303以及步骤304封装为路由模块,由路由模块实现事件路由的功能,计算机设备可以通过运行路由模块,执行上述步骤303至304。
在一个示例性场景中,每当分布式系统中的各个节点设备产生心跳事件时,可以将各种心跳事件按照心跳事件类型,路由至心跳事件类型对应的事件队列中,每当分布式系统中的各个节点设备向存储系统读写数据时,可以将写入数据事件、读取事件等事件,按照系统文件事件类型,路由至系统文件事件类型对应的事件队列中,依次类推。
本实施例中,提供了精细化的事件缓存机制,从所有事件统一进入一个事件队列,改进为各种事件路由至各自对应的事件队列。通过将不同类型的事件路由至不同的事件队列中,至少可以达到以下技术效果:
一方面,通过在事件分发与事件队列之间引入事件路由的过程,每个事件可以按照事件类型,发送至对应的事件队列中,实现了各个事件按照事件类型分别入列的功能。
另一方面,相关技术中,由于采用单一事件队列缓存所有的事件,各种类型的事件容易由于排头阻塞效应,产生相互干扰。而本实施例中不同类型的事件在不同事件队列分开排队,能够避免不同类型的事件由于排头阻塞,而产生干扰的情况,也就避免了某类事件处理耗时,而导致影响其他类事件的处理进度的情况,提高事件排队的效率。
在一个示例性场景中,如果事件队列中日志事件排在队首,而由于日志事件比较耗时,处理日志事件的事件处理模块当前繁忙,日志事件无法出列,则导致事件队列中日志事件之后的心跳事件等耗时较短的事件也阻塞在事件队列中,无法从事件队列中出列,也就无法发送至对应的事件处理模块,影响整个分布式系统的事件处理效率。
而本发明实施例中,不同类型的事件分开排队,日志事件的事件队列的拥塞情况不会干扰到心跳事件的事件队列,即使日志事件在日志事件类型对应的事件队列中阻塞,心跳事件也可正常从心跳事件类型对应的事件队列中排队并出列,从而提高了整个分布式系统的事件处理效率。
305、当事件从目标事件队列出列时,计算机设备向事件处理模块发送事件。
随着时间的推移,目标事件队列中的每个事件会从队尾移动至队首,当生成的事件排在了目标事件队列的队首时,计算机设备会向事件处理模块发送该事件。
其中,事件处理模块也可以称为事件处理器、监听器等,事件处理模块用于处理事件,可以为虚拟的程序模块,可以由计算机设备内的一个线程、对象、进程或其他程序执行单元执行,事件处理模块中封装了处理事件的方法,事件处理模块能够调用封装的方法,对事件进行处理。
关于向事件处理模块发送事件的过程,计算机设备可以生成用于向事件处理模块发送事件的线程,通过线程向事件处理模块发送事件。其中,线程是指程序的执行流程,是CPU调度执行的基本单位,示例性地,用于发送事件的线程可以为守护线程,守护线程可以监听目标事件队列,当事件从目标事件队列中出列时,守护线程可以获取该事件,将事件发送给事件处理模块。
可选地,可以通过多个线程,并发向事件处理模块分发事件。其中,并发(Concurrency)是指多个线程轮流执行任务的机制,例如对于线程A、线程B和线程C来说,这三个线程并发执行任务,即为线程A先执行任务,之后线程B执行任务,之后线程C执行任务,其中由于不同线程之间切换的时间间隔极短,可以看作多个任务在同时执行。通过多线程的并发机制,可以极大地提高执行任务的整体效率。
结合多线程的并发机制,针对多个事件队列中的任一事件队列,可以通过多个线程,并发向事件处理模块发送事件队列中的事件。即,会由多个线程轮流向事件处理模块发送事件,当一个线程向事件处理模块发送事件后,无需等待该线程发送结束,而是直接由下一个线程继续向事件处理模块发送事件。
示例性地,假设通过第一线程、第二线程并发来发送事件,对于事件队列中任意两个相邻的事件来说,以前一个事件称为第一事件,后一个事件称为第二事件为例,通过这两个线程发送这两个事件的过程,可以包括以下步骤一至步骤二:
步骤一、当第一事件从事件队列中出列时,通过第一线程,向事件处理模块发送事件。
步骤二、当第二事件从事件队列中出列时,通过第二线程,向事件处理模块发送第二事件,其中,第二线程与第一线程不同。
当第一事件从事件队列出列后,排在第一事件之后的第二事件会移动至队首,从事件队列中出列。此时,无需等待第一线程完成发送第一事件,直接通过第二线程发送第二事件即可。
需要说明的是,该多个线程的数量可以为两个或两个以上,多个线程的数据具体根据业务需求确定,本实施例对此不做限定。
通过多线程分发事件,至少可以达到以下技术效果:
相关技术中,分布式系统中均采用单个线程,串行地向事件处理模块发送事件。即,固定由一个线程,向事件处理模块发送事件队列中的事件,当前一个事件从事件队列中出列时,该线程要获取前一个事件,向事件处理模块发送该前一个事件,等待前一个事件发送结束后,该线程才能够继续发送后一个事件,如此,发送事件的效率很低。
而本发明实施例中,通过多线程并发地发送事件,多个线程可以轮流发送事件队列中的每个事件,通过多线程的机制极大地提高了发送事件的速度,并且,事件队列中前一个事件的发送过程不会阻塞下一个事件的发送过程,从而极大地提高了发送事件的效率。
可选地,在多线程发送事件的基础上,可以结合处理事件的耗时程度,设计为每个事件队列发送事件的线程的数量。具体地,多个事件队列中任一事件队列对应的线程的数量,与处理对应事件类型的事件的耗时时长正相关,即,处理某类事件越耗时,则为这类事件的事件队列发送事件的线程的数量越多,从而提升发送这类事件的能力。同理地,处理某类事件比较迅速,则为这类事件的事件队列发送事件的线程的数量越少,例如可以为单个线程,从而节约系统资源。
在一种可能的实现中,对于多个事件类型中的每个事件类型,可以预先根据处理该事件类型的耗时时长,配置该事件类型对应的事件队列的线程的数量,若处理该事件类型的事件的耗时时长较长,可以将该事件类型的事件队列的线程配置地较多,若处理该事件类型的事件的耗时时长较短,可以将该事件类型的事件队列的线程配置地较少,如此,计算机设备可以获取每个事件队列配置的线程的数量,根据事件队列所配置的线程的数量,生成每个事件队列对应的线程后,能够实现线程的数量与处理对应事件类型的事件的耗时时长正相关的效果。
举例来说,处理心跳事件类型的事件的耗时时长通常较短,则对于心跳事件类型的事件队列来说,可以设置仍按照单个线程,串行发送该事件队列的事件。而处理作业事件类型的事件的耗时时长通常较长,则对于作业事件类型的事件队列来说,可以设置按照多个线程,并发地发送该事件队列中的事件。
本步骤中,能够为耗时事件的事件队列,通过多个线程来发送事件,为不耗时的事件的事件队列,通过单个线程发送事件。如此,提高了通过线程发送事件的过程的灵活性,同时显著地提高了发送耗时事件的能力,能够针对性的对耗时的事件队列中的事件进行专项处理。
可选地,可以引入多个事件处理模块并发处理事件,即,对于多种事件类型中的每种事件类型,可以通过多个事件处理模块,共同处理该事件类型的所有事件。具体来说,该多种事件类型中任一种事件类型对应的事件处理模块可以包括至少两个,在一个事件处理模块处理事件的过程中,无需等待该事件处理模块处理结束,即可由下一个事件处理模块继续处理事件。
可选地,多种事件类型中任一种事件类型对应的事件处理模块的数量与处理对应事件类型的事件的耗时时长正相关,即,若事件类型对应的耗时时长越长,则该事件类型对应的事件处理模块的数量越多,那么分布式系统对这类事件的处理能力也就越强,例如,心跳事件类型的事件处理模块的数量较多,作业事件类型的事件处理模块的数量较少。
本步骤中,通过引入多个事件处理模块处理事件,可以提升处理事件的并发度,进而提升分布式系统的并发性能和可用性。进一步地,通过结合处理事件的耗时程度,设计每类事件的事件处理模块的数量,提高了处理事件的的灵活性,同时显著地提高了处理耗时事件的能力,能够针对性的对耗时的事件进行专项处理。
可选地,针对确定事件处理模块的过程,可以确定事件类型下的至少一个子事件类型,对事件与事件类型下的至少一个子事件类型进行匹配,得到事件匹配的子事件类型,再向子事件类型对应的事件处理模块发送事件。
事件类型以及子事件类型:可以将事件类型看作大类,子事件类型看作小类,子事件类型是比事件类型的维度更具体、更细化的类型,是隶属于事件类型的类型,每个事件类型可以包括一个或多个子事件类型。例如,作业事件类型可以包括启动作业的类型、结束作业的类型、启动任务的类型、结束任务的类型等。
关于确定事件类型下的至少一个子事件类型的过程,可以预先将所有子事件类型分别归入对应的事件类型中,在计算机设备上对应存储事件类型以及事件类型下的所有子事件类型,当计算机设备确定事件的事件类型后,即可获取该事件类型下的至少一个子事件类型。
关于对事件与事件类型下的子事件类型进行匹配的过程,可以依次对事件与每个子事件类型进行匹配,例如,可以遍历事件类型下的所有子事件类型,在遍历的过程中,对于当前遍历到的子事件类型,判断事件是否与该子事件类型匹配,当事件与该子事件类型匹配时,则将该子事件类型作为事件匹配的子事件类型。
其中,在一种可能的实现中,可以预先存储子事件类型的名称,判断事件的名称是否与子事件类型的名称相同,当事件的名称与子事件类型的名称相同时,则确定事件与子事件类型匹配。
关于根据子事件类型确定事件处理模块的过程,可以预先建立子事件类型与事件处理模块之间的对应关系,当得到事件匹配的子事件类型后,可以根据预先建立的对应关系,确定子事件类型对应的事件处理模块。
以下,对上述确定事件处理模块的过程至少可达到的技术效果进行描述:
相关技术中,当分布式系统中产生事件时,需要将所有的子事件类型作为遍历的范围,对事件与所有的子事件类型依次进行匹配,才能找到匹配的子事件类型,进而找到合适的事件处理模块以进行处理。如此,遍历的范围很大,需要耗费很长的时间,才能找到匹配的子事件类型以及事件处理模块,从而影响了处理事件的时间,更无法应对分布式系统中事件日趋多样化的挑战。
在一个示例性场景中,假设分布式系统中共有1000种子事件类型,当发生为第1000种子事件类型的事件时,则需要从第1种子事件类型遍历至第1000种子事件类型,对事件与1000种子事件类型进行依次匹配,在第1000次进行匹配时,才能确定匹配的事件处理模块。
而本实施例中,通过将大量事件划分为多个事件类型,对事件与事件类型下的至少一个子事件类型进行匹配,将遍历的范围从所有子事件类型,缩小为某一事件类型下的所有子事件类型。也即是,无需对事件与所有的子事件类型依次匹配,只需对事件与某一类型下的子事件类型依次匹配即可,缩小了遍历的范围,提高了匹配的效率,能够快速找到事件匹配的事件处理模块。
在一个示例性场景中,假设分布式系统中共有1000种子事件类型,划分为10种事件类型,其中,第900种子事件类型至第1000种子事件类型划分为第10种事件类型。那么,若发生了第1000种子事件类型的事件,在确定该事件属于第10种事件类型后,无需对事件与第1种子事件类型至第1000种子事件类型进行匹配,只需对事件从第900种子事件类型至第1000种子事件类型进行匹配即可。
306、计算机设备通过事件处理模块,对事件进行处理。
事件处理模块接收到事件后,可以调用自身的方法,对事件进行处理,得到事件的处理结果。
目前的分布式系统(例如spark)中的事件缓存机制包括以下特点:
第一,通过一个固定长度的事件队列缓存所有类型的事件。
因此,当这一个事件队列中的事件的数量达到该事件队列的容量的上限时,如有新事件产生,新事件将无法入列至事件队列中,导致新事件丢失,进而导致任务执行失败。
进一步地,如果丢失的新事件是触发gc等资源回收等类型的事件,会触发OOM(OutOfMemoryError,内存泄露)机制,即,操作系统会杀死进程以释放内存,影响了事件队列所在的节点设备的正常运行,甚至会引发节点设备的崩溃或瘫痪,导致节点设备无法与分布式系统中的其他节点设备进行通信,影响分布式系统的运行。也即是,事件的丢失会很大概率上影响分布式系统的稳定性,容易引起分布式系统不可用的情况。
第二,通过同一个线程,向事件处理模块串行发送所有事件,当线程发送前一个事件结束后,这个线程才能继续发送后一个事件。
因此,每个事件都要等待事件队列中该事件之前的所有事件均发送结束,才能被发送,可见发送事件的效率极低。此外,若某类事件处理耗时,在事件队列中发生拥塞,会由于排头阻塞的效应,会影响事件队列中其他类事件的出列,导致其他类事件无法得到处理,因此会影响整个分布式系统处理事件的效率。
第三,当某个事件进入事件处理模块前,需要对事件以及所有的子事件类型进行逐个匹配,才能找到匹配的事件处理模块以进行处理,这种匹配的方式,需要遍历的范围极大,不仅影响分布式系统的处理事件的效率,还可能引发分布式系统崩溃或瘫痪。
而本发明实施例解决了上述几个技术问题,提出了一种优化了的处理事件的方案。本方案中,通过对分布式系统的事件重新分类,并为不同的事件类型,创建不同的事件队列,以及在事件与事件队列之间,引入了事件路由的方法,提升了事件分发及处理的效率。更进一步,不仅解决了当前分布式系统因事件队列容量不足,或者某个耗时操作导致的整个系统事件处理效率低的问题,以及单线程发送事件而导致性能不足的问题,还解决了由上述问题引发的操作系统OOM,进而导致节点设备之间通信的问题以及系统崩溃或瘫痪等问题。同时,通过多线程以及多事件处理模块的机制,进一步提高了分布式系统的并发性和稳定性。
本发明实施例提供的方法,为分布式系统引入了多队列的事件缓存机制,通过设计多种事件类型以及多个事件队列,将每个事件按照事件类型,分别入列至对应的事件队列中,提高了事件队列的数量,从而提高了事件队列的总容量,进而提升了分布式系统缓存事件的能力,极大地改善了分布式系统的性能。尤其是,在分布式系统面临高并发访问的场景下,能够满足分布式系统缓存大量事件的需求。并且,扩充了事件队列容量,通过多个事件队列能够缓存大量事件,避免了事件队列容量不足导致事件频繁丢失的情况,从而提升分布式系统的稳定性和可用性。同时,通过不同的事件队列来缓存不同事件类型的事件,令分布式系统中的大量事件得以分门别类地缓存,不同类型的事件的处理过程不会互相干扰,提高整个分布式系统的处理效率。
图5是本发明实施例提供的一种事件处理装置的结构示意图。参见图5,该装置包括:获取模块501、确定模块502、入列模块503以及事件处理模块504。
获取模块501,用于当分布式系统中产生事件时,获取该事件的事件类型;
确定模块502,用于基于该事件类型,从多个事件队列中确定目标事件队列,该多个事件队列用于分别缓存多种事件类型的事件;
入列模块503,用于将该事件入列至该目标事件队列中;
事件处理模块504,用于当该事件从该目标事件队列出列时,对该事件进行处理。
本发明实施例提供的装置,为分布式系统引入了多队列的事件缓存机制,通过设计多种事件类型以及多个事件队列,将每个事件按照事件类型,分别入列至对应的事件队列中,提高了事件队列的数量,从而提高了事件队列的总容量,进而提升了分布式系统缓存事件的能力,极大地改善了分布式系统的性能。尤其是,在分布式系统面临高并发访问的场景下,能够满足分布式系统缓存大量事件的需求。并且,扩充了事件队列容量,通过多个事件队列能够缓存大量事件,避免了事件队列容量不足导致事件频繁丢失的情况,从而提升分布式系统的稳定性和可用性。同时,通过不同的事件队列来缓存不同事件类型的事件,令分布式系统中的大量事件得以分门别类地缓存,不同类型的事件的处理过程不会互相干扰,提高整个分布式系统的处理效率。
在一种可能的实现方式中,该确定模块502,包括:
查询子模块,用于查询路由信息,得到该事件类型对应的事件队列标识,该路由信息包括多种事件类型以及对应的多个事件队列标识;
确定子模块,用于将该事件队列标识对应的事件队列,作为该目标事件队列。
在一种可能的实现方式中,该多个事件队列中任一事件队列的深度与处理对应事件类型的事件的耗时时长正相关。
在一种可能的实现方式中,该装置还包括:
生成模块,用于为该多种事件类型,生成多个事件队列。
在一种可能的实现方式中,该装置还包括:
发送模块,用于针对该多个事件队列中的任一事件队列,通过多个线程,并发向事件处理模块504发送该事件队列中的事件。
在一种可能的实现方式中,该多个事件队列中任一事件队列对应的线程的数量,与处理对应事件类型的事件的耗时时长正相关。
在一种可能的实现方式中,该装置还包括:
匹配模块,用于对该事件与该事件类型下的至少一个子事件类型进行匹配,得到该事件匹配的子事件类型;
发送模块,用于向该子事件类型对应的事件处理模块504发送该事件。
在一种可能的实现方式中,该多种事件类型中任一种事件类型对应的事件处理模块504包括至少两个。
在一种可能的实现方式中,该多种事件类型中任一种事件类型对应的事件处理模块504的数量与处理对应事件类型的事件的耗时时长正相关。
在一种可能的实现方式中,该多个事件队列包括心跳事件类型对应的事件队列、资源监控事件类型对应的事件队列、资源申请事件类型对应的事件队列、系统文件事件类型对应的事件队列、作业事件类型对应的事件队列以及其他事件类型对应的事件队列中的至少两个。
上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。
需要说明的是:上述实施例提供的事件处理装置在处理事件时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将事件处理装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的处理事件装置与处理事件方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图6是本发明实施例提供的一种计算机设备的结构示意图,该计算机设备600可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(centralprocessing units,CPU)601和一个或一个以上的存储器602,其中,该存储器602中存储有至少一条指令,该至少一条指令由该处理器601加载并执行以实现上述各个方法实施例提供的事件处理方法。当然,该计算机设备还可以具有有线或无线网络接口以及输入输出接口等部件,以便进行输入输出,该计算机设备还可以包括其他用于实现设备功能的部件,在此不做赘述。
在示例性实施例中,还提供了一种计算机可读存储介质,例如包括指令的存储器,上述指令可由计算机设备中的处理器执行以完成上述实施例中的事件处理方法。例如,该计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上该仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (22)
1.一种事件处理方法,其特征在于,所述方法包括:
当分布式系统中产生事件时,获取所述事件的事件类型;
基于所述事件类型,从多个事件队列中确定目标事件队列,所述多个事件队列用于分别缓存多种事件类型的事件;
将所述事件入列至所述目标事件队列中;
当所述事件从所述目标事件队列出列时,对所述事件进行处理。
2.根据权利要求1所述的方法,其特征在于,所述基于所述事件类型,从多个事件队列中确定目标事件队列,包括:
查询路由信息,得到所述事件类型对应的事件队列标识,所述路由信息包括多种事件类型以及对应的多个事件队列标识;
将所述事件队列标识对应的事件队列,作为所述目标事件队列。
3.根据权利要求1所述的方法,其特征在于,所述多个事件队列中任一个事件队列的深度与处理对应事件类型的事件的耗时时长正相关。
4.根据权利要求1所述的方法,其特征在于,所述获取所述事件的事件类型之前,所述方法还包括:
为所述多种事件类型,生成多个事件队列。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
针对所述多个事件队列中的任一事件队列,通过多个线程,并发向事件处理模块发送所述事件队列中的事件;
通过所述事件处理模块,对所述事件进行处理。
6.根据权利要求5所述的方法,其特征在于,所述多个事件队列中任一事件队列对应的线程的数量,与处理对应事件类型的事件的耗时时长正相关。
7.根据权利要求1所述的方法,其特征在于,所述对所述事件进行处理,包括:
对所述事件与所述事件类型下的至少一个子事件类型进行匹配,得到所述事件匹配的子事件类型;
向所述子事件类型对应的事件处理模块发送所述事件;
通过所述事件处理模块,对所述事件进行处理。
8.根据权利要求5至7任一项所述的方法,其特征在于,所述多种事件类型中任一种事件类型对应的事件处理模块包括至少两个。
9.根据权利要求8所述的方法,其特征在于,所述多种事件类型中任一种事件类型对应的事件处理模块的数量与处理对应事件类型的事件的耗时时长正相关。
10.根据权利要求1所述的方法,其特征在于,所述多个事件队列包括心跳事件类型对应的事件队列、资源监控事件类型对应的事件队列、资源申请事件类型对应的事件队列、系统文件事件类型对应的事件队列、作业事件类型对应的事件队列以及其他事件类型对应的事件队列中的至少两个。
11.一种事件处理装置,其特征在于,所述装置包括:
获取模块,用于当分布式系统中产生事件时,获取所述事件的事件类型;
确定模块,用于基于所述事件类型,从多个事件队列中确定目标事件队列,所述多个事件队列用于分别缓存多种事件类型的事件;
入列模块,用于将所述事件入列至所述目标事件队列中;
事件处理模块,用于当所述事件从所述目标事件队列出列时,对所述事件进行处理。
12.根据权利要求11所述的装置,其特征在于,所述确定模块,包括:
查询子模块,用于查询路由信息,得到所述事件类型对应的事件队列标识,所述路由信息包括多种事件类型以及对应的多个事件队列标识;
确定子模块,用于将所述事件队列标识对应的事件队列,作为所述目标事件队列。
13.根据权利要求11所述的装置,其特征在于,所述多个事件队列中任一事件队列的深度与处理对应事件类型的事件的耗时时长正相关。
14.根据权利要求11所述的装置,其特征在于,所述装置还包括:
生成模块,用于为所述多种事件类型,生成多个事件队列。
15.根据权利要求11所述的装置,其特征在于,所述装置还包括:
发送模块,用于针对所述多个事件队列中的任一事件队列,通过多个线程,并发向事件处理模块发送所述事件队列中的事件。
16.根据权利要求15所述的装置,其特征在于,所述多个事件队列中任一事件队列对应的线程的数量,与处理对应事件类型的事件的耗时时长正相关。
17.根据权利要求11所述的装置,其特征在于,所述装置还包括:
匹配模块,用于对所述事件与所述事件类型下的至少一个子事件类型进行匹配,得到所述事件匹配的子事件类型;
发送模块,用于向所述子事件类型对应的事件处理模块发送所述事件。
18.根据权利要求14-17中任一项所述的装置,其特征在于,所述多种事件类型中任一种事件类型对应的事件处理模块包括至少两个。
19.根据权利要求18所述的装置,其特征在于,所述多种事件类型中任一种事件类型对应的事件处理模块的数量与处理对应事件类型的事件的耗时时长正相关。
20.根据权利要求11所述的装置,其特征在于,所述多个事件队列包括心跳事件类型对应的事件队列、资源监控事件类型对应的事件队列、资源申请事件类型对应的事件队列、系统文件事件类型对应的事件队列、作业事件类型对应的事件队列以及其他事件类型对应的事件队列中的至少两个。
21.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现权利要求1-10中任一项所述的方法步骤。
22.一种计算机可读存储介质,其特征在于,所述存储介质内存储有至少一条指令,所述至少一条指令被处理器执行以实现权利要求1-10中任一项所述的方法步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810545759.6A CN110532067A (zh) | 2018-05-25 | 2018-05-25 | 事件处理方法、装置、设备及存储介质 |
PCT/CN2019/087219 WO2019223596A1 (zh) | 2018-05-25 | 2019-05-16 | 事件处理方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810545759.6A CN110532067A (zh) | 2018-05-25 | 2018-05-25 | 事件处理方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110532067A true CN110532067A (zh) | 2019-12-03 |
Family
ID=68617357
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810545759.6A Pending CN110532067A (zh) | 2018-05-25 | 2018-05-25 | 事件处理方法、装置、设备及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110532067A (zh) |
WO (1) | WO2019223596A1 (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111092865A (zh) * | 2019-12-04 | 2020-05-01 | 全球能源互联网研究院有限公司 | 一种安全事件分析方法及系统 |
CN111309494A (zh) * | 2019-12-09 | 2020-06-19 | 上海金融期货信息技术有限公司 | 一种多线程事件处理组件 |
CN111461198A (zh) * | 2020-03-27 | 2020-07-28 | 杭州海康威视数字技术股份有限公司 | 一种动作确定方法、系统及装置 |
CN112040317A (zh) * | 2020-08-21 | 2020-12-04 | 海信视像科技股份有限公司 | 事件响应方法及显示设备 |
CN112102063A (zh) * | 2020-08-31 | 2020-12-18 | 深圳前海微众银行股份有限公司 | 数据请求方法、装置、设备、平台及计算机存储介质 |
CN112416632A (zh) * | 2020-12-14 | 2021-02-26 | 五八有限公司 | 事件通信方法、装置、电子设备和计算机可读介质 |
CN112860400A (zh) * | 2021-02-09 | 2021-05-28 | 山东英信计算机技术有限公司 | 一种处理分布式训练任务的方法、系统、设备及介质 |
CN113254466A (zh) * | 2021-06-18 | 2021-08-13 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置、电子设备和存储介质 |
CN113608842A (zh) * | 2021-09-30 | 2021-11-05 | 苏州浪潮智能科技有限公司 | 一种容器集群和组件的管理方法、装置、系统及存储介质 |
CN115391058A (zh) * | 2022-08-05 | 2022-11-25 | 江苏安超云软件有限公司 | 一种基于sdn的资源事件处理方法、资源创建方法及系统 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11531567B2 (en) * | 2021-05-03 | 2022-12-20 | Telenav, Inc. | Computing system with message ordering mechanism and method of operation thereof |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1517917A (zh) * | 2003-01-27 | 2004-08-04 | ������������ʽ���� | 在多线程环境中管理和持久结构相关联的事务处理的方法 |
CN104133724A (zh) * | 2014-04-03 | 2014-11-05 | 腾讯科技(深圳)有限公司 | 并发任务调度方法及装置 |
CN105337896A (zh) * | 2014-07-25 | 2016-02-17 | 华为技术有限公司 | 报文处理方法和装置 |
CN106095535A (zh) * | 2016-06-08 | 2016-11-09 | 东华大学 | 一种支持多核平台下数据流处理的线程管理系统 |
US20170061364A1 (en) * | 2015-08-28 | 2017-03-02 | Exacttarget, Inc. | Database systems and related queue management methods |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120239372A1 (en) * | 2011-03-14 | 2012-09-20 | Nec Laboratories America, Inc. | Efficient discrete event simulation using priority queue tagging |
CN102457578B (zh) * | 2011-12-16 | 2015-10-07 | 中标软件有限公司 | 一种基于事件机制的分布式网络监控方法 |
WO2013097248A1 (zh) * | 2011-12-31 | 2013-07-04 | 华为技术有限公司 | 一种基于消息队列的分布式任务处理的方法、装置及系统 |
CN105302638B (zh) * | 2015-11-04 | 2018-11-20 | 国家计算机网络与信息安全管理中心 | 基于系统负载的mpp集群任务调度方法 |
-
2018
- 2018-05-25 CN CN201810545759.6A patent/CN110532067A/zh active Pending
-
2019
- 2019-05-16 WO PCT/CN2019/087219 patent/WO2019223596A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1517917A (zh) * | 2003-01-27 | 2004-08-04 | ������������ʽ���� | 在多线程环境中管理和持久结构相关联的事务处理的方法 |
CN104133724A (zh) * | 2014-04-03 | 2014-11-05 | 腾讯科技(深圳)有限公司 | 并发任务调度方法及装置 |
CN105337896A (zh) * | 2014-07-25 | 2016-02-17 | 华为技术有限公司 | 报文处理方法和装置 |
US20170061364A1 (en) * | 2015-08-28 | 2017-03-02 | Exacttarget, Inc. | Database systems and related queue management methods |
CN106095535A (zh) * | 2016-06-08 | 2016-11-09 | 东华大学 | 一种支持多核平台下数据流处理的线程管理系统 |
Non-Patent Citations (2)
Title |
---|
姜维,庞秀丽: "《分布式网络系统与Multi-Agent系统编程框架》", 31 January 2015, 哈尔滨工业大学出版社 * |
贺国先: "《现代物流系统仿真》", 31 December 2008, 中国铁道出版社 * |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111092865A (zh) * | 2019-12-04 | 2020-05-01 | 全球能源互联网研究院有限公司 | 一种安全事件分析方法及系统 |
CN111309494A (zh) * | 2019-12-09 | 2020-06-19 | 上海金融期货信息技术有限公司 | 一种多线程事件处理组件 |
CN111461198A (zh) * | 2020-03-27 | 2020-07-28 | 杭州海康威视数字技术股份有限公司 | 一种动作确定方法、系统及装置 |
CN111461198B (zh) * | 2020-03-27 | 2023-10-13 | 杭州海康威视数字技术股份有限公司 | 一种动作确定方法、系统及装置 |
CN112040317A (zh) * | 2020-08-21 | 2020-12-04 | 海信视像科技股份有限公司 | 事件响应方法及显示设备 |
CN112102063A (zh) * | 2020-08-31 | 2020-12-18 | 深圳前海微众银行股份有限公司 | 数据请求方法、装置、设备、平台及计算机存储介质 |
CN112102063B (zh) * | 2020-08-31 | 2024-05-14 | 深圳前海微众银行股份有限公司 | 数据请求方法、装置、设备、平台及计算机存储介质 |
CN112416632A (zh) * | 2020-12-14 | 2021-02-26 | 五八有限公司 | 事件通信方法、装置、电子设备和计算机可读介质 |
CN112860400A (zh) * | 2021-02-09 | 2021-05-28 | 山东英信计算机技术有限公司 | 一种处理分布式训练任务的方法、系统、设备及介质 |
CN113254466A (zh) * | 2021-06-18 | 2021-08-13 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置、电子设备和存储介质 |
CN113608842A (zh) * | 2021-09-30 | 2021-11-05 | 苏州浪潮智能科技有限公司 | 一种容器集群和组件的管理方法、装置、系统及存储介质 |
CN115391058A (zh) * | 2022-08-05 | 2022-11-25 | 江苏安超云软件有限公司 | 一种基于sdn的资源事件处理方法、资源创建方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
WO2019223596A1 (zh) | 2019-11-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110532067A (zh) | 事件处理方法、装置、设备及存储介质 | |
US10545789B2 (en) | Task scheduling for highly concurrent analytical and transaction workloads | |
CN109075988B (zh) | 任务调度和资源发放系统和方法 | |
CN108776934B (zh) | 分布式数据计算方法、装置、计算机设备及可读存储介质 | |
Daglis et al. | RPCValet: NI-driven tail-aware balancing of µs-scale RPCs | |
Redekopp et al. | Optimizations and analysis of bsp graph processing models on public clouds | |
CN105094981B (zh) | 一种数据处理的方法及装置 | |
Xu et al. | A heterogeneity-aware task scheduler for spark | |
WO2023274278A1 (zh) | 一种资源调度的方法、装置及计算节点 | |
CN110096521A (zh) | 日志信息处理方法及装置 | |
WO2018157768A1 (zh) | 调度运行设备的方法、设备和运行设备 | |
Xu et al. | Building a high-performance key–value cache as an energy-efficient appliance | |
WO2015090044A1 (zh) | 一种数据扫描的方法及装置 | |
CN103984529A (zh) | 基于飞腾处理器的x图形系统并行加速方法 | |
CN111580951A (zh) | 一种任务分配方法及资源管理平台 | |
Mershad et al. | A study of the performance of a cloud datacenter server | |
CN114610765B (zh) | 流计算方法、装置、设备及存储介质 | |
WO2017017774A1 (ja) | ストレージ監視システムおよびその監視方法 | |
Sreenivasamurthy et al. | SIVSHM: Secure inter-vm shared memory | |
CN109417561A (zh) | 分布式资源管理方法和系统 | |
Lu et al. | Local resource shaper for mapreduce | |
Zhang et al. | L-Heron: An open-source load-aware online scheduler for Apache Heron | |
Sajjapongse et al. | A flexible scheduling framework for heterogeneous CPU-GPU clusters | |
WO2013153620A1 (ja) | データ処理システム及びデータ処理方法 | |
CN110442431A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20191203 |