CN111913807A - 一种基于多个存储区域的事件处理方法、系统及装置 - Google Patents
一种基于多个存储区域的事件处理方法、系统及装置 Download PDFInfo
- Publication number
- CN111913807A CN111913807A CN202010815006.XA CN202010815006A CN111913807A CN 111913807 A CN111913807 A CN 111913807A CN 202010815006 A CN202010815006 A CN 202010815006A CN 111913807 A CN111913807 A CN 111913807A
- Authority
- CN
- China
- Prior art keywords
- event
- generation time
- target
- storage area
- storage areas
- 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.)
- Granted
Links
- 238000003860 storage Methods 0.000 title claims abstract description 275
- 238000003672 processing method Methods 0.000 title claims abstract description 14
- 238000012545 processing Methods 0.000 claims abstract description 82
- 238000000034 method Methods 0.000 claims abstract description 48
- 238000004590 computer program Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 11
- 238000004891 communication Methods 0.000 description 10
- 238000004519 manufacturing process Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000005034 decoration Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
-
- 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/542—Event management; Broadcasting; Multicasting; Notifications
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本说明书公开了一种基于多个存储区域的事件处理方法、系统及装置,方法应用于包括生产方、中间方和消费方的系统,其中,中间方包括至少两个存储区域,所述方法包括:中间方,针对生产方发送的任一事件,确定该事件所对应的存储区域;并将其存储到所确定的存储区域中;消费方,针对任一存储区域,确定当前待读取的目标事件,并确定其对应的目标生成时间;遍历所述中间方的其他存储区域,确定其中是否存在生成时间早于该目标生成时间的事件;在不存在的情况下,读取所述目标事件并进行处理。
Description
技术领域
本说明书涉及计算机技术领域,尤其涉及一种基于多个存储区域的事件处理方法、系统及装置。
背景技术
生产消费模式是目前常用的事件处理模式,基本过程如下:生产方生成事件后,会将生成的事件发送给中间方,中间方通常将到达本地的事件逐个存储到一个存储区域中;消费方对存储区域中的事件进行读取消费。
其中,由于消费方需要及时按照事件生成的顺序对事件进行读取消费,而通常情况下,事件到达中间方本地的顺序与事件生成的顺序相同,因此,消费方可以直接对中间方存储区域中的事件按照存储顺序进行读取消费。
但是,在生产方生成事件的速度大于消费方消费事件的速度时,存储区域中的事件会增多,直到溢出。
为了避免这一情况的出现,中间方可以将到达本地的事件并行地存储到多个存储区域中,由消费方对多个存储区域中的事件进行读取消费。但由于多个存储区域之间相互独立,消费方分别在不同的存储区域读取事件时,难以保证读取事件的顺序是按照事件生成的顺序进行的。
因此,如何保证消费方按照事件生成的顺序从多个存储区域中读取事件并进行消费是目前亟待解决的问题。
发明内容
针对上述技术问题,本说明书提供一种基于多个存储区域的事件处理方法、系统及装置,技术方案如下:
根据本说明书的第一方面,提供一种基于多个存储区域的事件处理方法,应用于包括生产方、中间方和消费方的系统,其中,中间方包括至少两个存储区域,所述方法包括:
中间方,针对生产方发送的任一事件,确定该事件所对应的存储区域;并将其存储到所确定的存储区域中;
消费方,针对任一存储区域,确定当前待读取的目标事件,并确定其对应的目标生成时间;遍历所述中间方的其他存储区域,确定其中是否存在生成时间早于该目标生成时间的事件;
在不存在的情况下,读取所述目标事件并进行处理。
根据本说明书的第二方面,提供一种基于多个存储区域的事件处理系统,包括生产方、中间方和消费方,其中,中间方包括至少两个存储区域;
所述中间方,用于针对生产方发送的任一事件,确定该事件所对应的存储区域;并将其存储到所确定的存储区域中;
所述消费方,用于针对任一存储区域,确定当前待读取的目标事件,并确定其对应的目标生成时间;遍历所述中间方的其他存储区域,确定其中是否存在生成时间早于该目标生成时间的事件;
在不存在的情况下,读取所述目标事件并进行处理。
根据本说明书的第三方面,提供一种基于多个存储区域的事件处理装置,应用于事件处理系统中的消费方,所述事件处理系统还包括生产方和中间方;其中,中间方包括至少两个存储区域,所述装置包括:
生成时间确定模块,用于针对中间方的任一存储区域,确定当前待读取的目标事件,并确定其对应的目标生成时间;
遍历模块,用于遍历所述中间方的其他存储区域,确定其中是否存在生成时间早于该目标生成时间的事件;其中,所述存储区域中的事件为中间方接收到生产方发送的、并存储到该存储区域中的事件;
事件处理模块,用于在不存在的情况下,读取所述目标事件并进行处理。
采用本说明书提供的技术方案,由于消费方在确定对待读取的目标事件进行读取和处理前,先判断中间方的其他存储区域中是否存在生成时间早于目标事件生成时间的事件,在不存在的情况下,才读取目标事件进行处理,在存在的情况下不读取和处理。因此可以确保消费方能够按照事件生成的顺序从多个存储区域中读取事件并进行消费,避免对事件进行乱序处理。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1是本说明书实施例的一种生产消费系统结构示意图;
图2a是本说明书实施例的一种中间方具有多存储区域的生产消费系统结构示意图;
图2b是本说明书实施例的另一种中间方具有多存储区域的生产消费系统结构示意图;
图3是本说明书实施例的一种基于多个存储区域的事件处理方法流程示意图;
图4是本说明书实施例的一种消费方执行的事件处理方法流程示意图;
图5是本说明书实施例的一种具体多存储区域的中间方结构示意图;
图6是本说明书实施例的另一种消费方执行的事件处理方法流程示意图;
图7是本说明书实施例的一种具体多存储区域和临时存储区域的中间方结构示意图;
图8是本说明书实施例的又一种消费方执行的事件处理方法流程示意图;
图9是本说明书实施例的一种基于多个存储区域的事件处理装置结构示意图;
图10是用于配置本说明书实施例装置的一种设备的结构示意图。
具体实施方式
为了使本领域技术人员更好地理解本说明书实施例中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行详细地描述,显然,所描述的实施例仅仅是本说明书的一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于保护的范围。
在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
生产消费模式是目前常用的事件处理模式,基本过程如下:生产方生成事件后,会将生成的事件发送给中间方,中间方通常将到达本地的事件逐个存储到一个存储区域中;消费方对存储区域中的事件进行读取消费。生产方可以是处理各种业务的业务系统,可以由一个服务器或者服务器集群构成;中间方可以视为有一定处理能力的存储区域,也可以由一个服务器或者服务器集群构成;消费方可以是计算引擎,例如Spark、Flink等计算引擎,也可以为其他具有消费处理能力的系统,本申请对于生产方、消费方、中间方的具体形式不做限定。
如图1所示,为目前常用的生产消费模式系统的结构示意图。
生产方在生成事件后,会将事件发送至中间方,中间方在接收到事件后,会按照事件的接收顺序将事件逐个存储到存储区域中,由于在通常情况下,生产方在生成事件后会及时将生成的事件发送至中间方,因此一般情况下,事件被生产方生成后,到达中间方的顺序与事件生成的顺序相同。
如图1所示,将中间方的存储区域可以视为一条遵循先进先出的队列,图中每个事件的标号既用于表示事件的生成时间顺序,同时为了描述清楚也用于标识和区分事件,例如本段中描述的事件1、事件2、事件3可以分别表示图1中存储区域中的从右到左的3个事件,另外如果图中同时出现多个标号相同的事件,并不代表这些标号相同的事件时是同一个事件,而代表是同一生成时间生成的事件,例如,如果图中中间方存储了多个标号为3的事件,则代表这些事件的生成时间相同。如无特殊说明,其他附图中的图示方式和本文其他段落中的描述方式也遵循这一原则。
从图1中可以看出,先生成且先到达中间方的事件1先存储到了存储区域中,后生成且后到达的事件3后存储到了存储区域。由于消费方是按照存储区域的存储顺序对中间方存储的事件进行消费处理,即先读取事件1进行处理、再读取事件2进行处理、最后读取事件3进行处理,以此类推,且由于存储顺序与事件生成顺序一致,因此消费方是在按照事件生成的顺序对事件进行读取消费,即消费方可以实现按序处理中间方存储区域中存储的事件,满足了消费方的按序处理需求。
但是,在生产方生成事件的速度大于消费方消费事件的速度时,存储区域中的事件会增多,由于存储区域中的存储空间有限,因此可能会出现事件溢出的情况,即因为无法存储到存储区域可能会造成事件遗漏或丢弃的现象。
为了避免这一情况的出现,中间方可以将到达本地的事件并行地存储到多个存储区域中,如图2a所示,通过多个存储区域存储事件,以避免事件的溢出。此时,由消费方对多个存储区域中的事件进行读取消费。但由于多个存储区域之间相互独立,例如,不同的存储区域位于不同的存储设备之中。消费方分别在不同的存储区域读取事件时,难以保证读取事件的顺序是按照事件生成的顺序进行的,结合图2a,可能先读取了存储区域3中的事件2并进行了处理,然后才读取了存储区域1中的事件1。而事件2的生成时间晚于事件1,因此就造成了消费方的乱序处理,即消费方并不能按照事件的生成时间对事件进行处理。
针对上述技术问题,本说明书提供的方案是:
消费方在确定对待读取的目标事件进行读取和处理前,先判断中间方的其他存储区域中是否存在生成时间早于目标事件生成时间的事件,在不存在的情况下,才读取目标事件进行处理,在存在的情况下,不读取和处理目标事件。因此可以确保消费方能够按照事件生成的顺序从多个存储区域中读取事件并进行消费,避免对事件进行乱序处理。
基于以上说明,如图3所示,本说明书提供一种基于多个存储区域的事件处理方法,应用于包括生产方、中间方和消费方的系统,其中,中间方包括至少两个存储区域,该方法包括:
S301,中间方针对生产方发送的任一事件,确定该事件所对应的存储区域;并将其存储到所确定的存储区域中;
在本步骤中,生产方在生成事件后,会将事件发送至中间方。中间方在接收到生产方发送的事件后,会将事件按照一定的分配策略分配到不同的存储区域中。结合图2a,一种方式为中间方可以将同一时间接收到的事件均衡的分配到所有存储区域中。一种方式是预先按照事件的类型设置该类型对应的存储区域,在接收到事件后,可以按照事件的类型将事件分配到对应的存储区域。例如可以将类型A的事件分配到存储区域1,将类型B的事件存储到存储区域2,以此类推。当然,按照事件的类型预先分配的区域也要尽量满足负载均衡的原则,避免将事件过多的事件分配到同一存储区域,而其他存储区域无事件存储的现象。
本步骤中,中间方接收到事件后,可以按照预定义的分配策略,确定该事件所要存储的存储区域,并将其存储到该存储区域中,由于中间方接收到事件后会立即存储到存储区域中,因此每个存储区域中的事件存储顺序与中间方接收事件的顺序一致,又因为正常情况下,事件从生产方到达中间方的顺序与事件的生成时间一致,因此,每个存储区域中存储的事件的顺序与事件的生成顺序是一致的,如图2a中的存储区域1,事件1先存储到存储区域1中,事件2晚于事件1存储到存储区域1中,以此类推。
S302,消费方,针对任一存储区域,确定当前待读取的目标事件,并确定其对应的目标生成时间;遍历所述中间方的其他存储区域,确定其中是否存在生成时间早于该目标生成时间的事件;
S303,在不存在的情况下,读取所述目标事件并进行处理。
为了方便说明,将步骤S302-S303合并在一起进行描述,消费方并行的从中间方的所有存储区域中读取事件并进行处理。其中,对于中间方的任意一个存储区域,可以按照该存储区域的存储顺序,读取事件并进行处理。以图2a中的存储区域1为例,消费方对存储区域1中的事件进行处理时,可以确定当前待读取的目标事件为最先存储到存储区域1中的事件1,为了避免对中间方整体存储的事件进行乱序处理,即避免对各个存储区域之间的事件乱序处理,本步骤中,并不立刻将事件1读取出来并进行处理,而是先要判断其他存储区域中,是否存储在生成时间早于该目标生成时间的事件,即是否有生成时间早于事件1的事件。
其中,一种方式是遍历其他存储区域中的所有事件,确定是否存在生成时间早于该目标生成时间的事件,以图2a为例,可以遍历存储区域2和存储区域3中的所有事件,确定是否存在生成时间早于该目标生成时间的事件。
考虑到一般情况下每个存储区域中的事件存储顺序均是与事件生成顺序一致,因此本步骤中也可以遍历中间方的其他存储区域中当前待读取的事件,确定其中是否存在生成时间早于该目标生成时间的事件,即其他存储区域中最先存储到该区域中的事件。仍以图2a为例,可以仅遍历存储区域2和存储区域3中的当前待读取的事件,即存储区域2中的事件1和存储区域3中的事件2,确定这两个事件中是否存在生成时间早于该目标生成时间的事件,这样可以大大减少本步骤中需要遍历查询的数量,提高处理效率。
从图2a中可见,其他存储区域中并没有早于事件1的事件,因此可以读取事件1并进行处理。
上述描述均是针对一个存储区域执行的步骤,即针对存储区域1执行的步骤,但可以理解的是,消费方同时也在对存储区域2和存储区域3都执行相同的步骤。
以图2a所示的示意图为例,此时消费方如果针对存储区域1-3均执行S302-S303,可以确定执行处理策略为:读取存储区域1中的事件1并处理;读取存储区域2中的事件1并处理;暂不读取存储区域3中的事件2,待其他存储区域中没有生成事件早于存储区域3中的事件2时,才读取存储区域3中的事件2并进行处理。处理后的结果如图2b所示,进一步采用上述S302-S303的步骤对图2b所示的事件进行处理,可以确定执行处理策略为:读取存储区域1中的事件2并处理;读取存储区域3中的事件2并处理;暂不读取存储区域2中的事件3,待其他存储区域中没有生成时间早于存储区域2中的事件3的事件时,才读取存储区域2中的事件3并进行处理,以此类推对各个存储区域中的事件进行处理。
为了更加清楚地描述上述消费方执行的S302-S303,下面结合附图4,对消费方需要执行的步骤再进行描述。
S401,针对中间方的任一存储区域,确定当前待读取的目标事件,并确定其对应的目标生成时间;
S402,遍历所述中间方的其他存储区域,确定其中是否存在生成时间早于该目标生成时间的事件;
本步骤中,优选的可以仅遍历所述中间方的其他存储区域中当前待读取的事件,确定其中是否存在生成时间早于该目标生成时间的事件。
在存在的情况下,执行S403,即不对目标事件进行读取;
在不存在的情况下,执行S404,即读取目标事件并进行处理。
可见,采用本说明书的提出的方法,由于消费方在确定对待读取的目标事件进行读取前,先判断中间方的其他存储区域中是否存在生成时间早于目标事件生成时间的事件,在不存在的情况下,才读取目标事件进行处理,在存在的情况下,不读取和处理。因此可以确保消费方能够按照事件生成的顺序从多个存储区域中读取事件并进行消费,避免了对事件进行乱序处理。
如图5所示,考虑到在生产方向中间方发送数据时,因为网络延迟等原因会存在先生成的事件后到达中间方的现象,如图中所示的中间方,在存储区域1中,事件2的生成时间确早于事件3,而事件2却因为网络延迟晚于事件3到达了中间方,因此存储至存储区域1的时间晚于事件3。
为了在发生上述情况下,仍能保证消费方可以从各个存储区域中按序读取和处理事件,本说明书提出如图6所示的一种消费方执行的事件处理方法。
其中,S601-S603与S401-S403相同,这里不再进行赘述。
S604,在确定其他存储区域中不存在生成时间早于该目标生成时间的事件的情况下,遍历所述目标事件所在的存储区域,确定该存储区域中是否存在生成时间早于该目标生成时间的事件;
如图5所示的存储区域1,当前待读取事件为事件3,若确定其他存储区域中不存在早于事件3的生成时间的事件时,可以进一步遍历存储区域1,判断存储区域1中是否存在生成时间早于该目标生成时间的事件。
在目标事件所在的存储区域,存在生成时间早于该目标生成时间的事件的情况下,可以执行S605,即根据当前处理情况以及该事件的生成时间,确定针对该事件的处理策略。
在目标事件所在的存储区域,不存在生成时间早于该目标生成时间的事件的情况下,说明读取当前事件并不会造成乱序,故执行S606,即读取目标事件并进行处理。
从图5中可以看出,存在事件2早于事件3的生成时间,因此执行S605。
下面就S605中具体的处理策略进行描述:
以图5存储区域1为例,确定事件2早于事件3的生成时间,则可以进一步确定事件2的生成时间,例如生成时间为第2秒,进一步消费方确定本地当前正在处理第几秒的事件,根据当前处理的情况,可以确定不同的处理策略。
一种情况为:当前正在处理第2秒的事件,则可以直接对该事件2进行读取并进行处理。
另一种情况为:当前正在处理晚于第2秒的事件,例如正在处理第3秒的数据,如果此时读取事件2并进行处理,则会造成乱序处理,因此可以直接将事件2进行丢弃,或读取出来放入离线事件库,以等待离线补偿处理。
另一种情况为:当前处理的事件早于第2秒的事件,例如正在处理第1秒的数据,在确定事件2已经是目前各存储区域中生成时间最早的事件的情况下,可以直接对该事件2进行读取并进行处理。
对该事件处理完成后,可以对目标事件进行读取和处理。可以理解的是当执行S604时,确定目标事件所在的存储区域中存在多个生成时间早于目标生成时间的事件的情况下,可以针对每一个确定出的事件,依次或并行执行上述S605,以对所有确定出的事件都进行相应的处理。
本实施例提出的S601-S606的方案,在出现先生成的事件晚到达中间方的情况下,也可以尽可能避免消费方对事件进行乱序处理,保证了这种情况下的处理顺序。
本说明书提出的方案中,设置多个存储区域并行的存储事件,可以尽可能的避免由于生产方生成事件的速度大于消费方消费事件的速度时,存储区域中的事件溢出,但是,在少数情况下,例如生产方业务量暴增仍有可能会出现溢出的情况。为了避免溢出,导致事件被自动丢弃,在中间方中设置临时存储区域,中间方,在确定无法将事件存储到所确定的存储区域中的情况下,将该事件存储到临时存储位置,在存储区域中的事件被读取后,可以将临时存储区域中的事件存储到其对应的存储区域中。如图7所示,由于存储区域1-3存储空间已满,均无法继续存储,因此可以将接收到的后续事件先暂时存储到临时存储区域中,并且确定每个事件待存储的存储区域,存储区域中的事件被读取后,再将临时存储区域中的事件存储到该存储区域中,采用本方式可以避免事件的溢出导致事件直接被丢弃的情况。
结合图7提出的包括临时存储区域的中间方,本说明书还提出了如图8所示的一种消费方执行的事件处理方法,
其中,S801-S803与S401-S403相同,这里不再进行赘述。
S804,在确定其他存储区域中不存在生成时间早于该目标生成时间的事件的情况下,遍历所述临时存储位置,确定其中是否存在生成时间早于该目标生成时间的事件;
一般情况下,由于先生成的事件后到达中间方的情况并不多,但是考虑到偶尔会因为网络原因导致的上述情况。因此,在S804中确定其他存储区域中不存在生成时间早于该目标生成时间的事件的情况下,如果临时存储区域中存在事件,还要遍历临时存储区域,以避免对事件的乱序处理。
结合图7,以存储区域1为例,当前待读取事件为事件3,如果确定其他存储区域中不存在早于事件3的事件,则遍历临时存储区域,确定其中是否存在早于事件3的事件。
在临时存储区域,存在生成时间早于该目标生成时间的事件的情况下,避免因为执行当前待读取事件造成乱序,可以执行S805,即根据当前处理情况以及该事件的生成时间,确定针对该事件的处理策略。
其中S805中的处理策略可以参照上述S605中的处理策略,这里不再进行赘述。
在临时存储区域,不存在生成时间早于该目标生成时间的事件的情况下,说明读取当前事件并不会造成乱序,可以执行S806,即读取目标事件并进行处理。
采用本实施例的方式,即图8所示的方式,在确定其他存储区域中不存在生成时间早于目标生成时间的事件的情况下,进一步遍历临时存储区域可以尽可能避免对中间方存储的事件进行乱序处理。
当然,在中间方的临时存储区域中存在事件的情况下,也可以将上述S801-S806和S601-S606相结合,即在S802中判断为否的情况下,可以既执行S604又执行S804,即在确定其他存储区域中不存在生成时间早于该目标生成时间的事件的情况下,可以同时遍历目标事件所在的存储区域和临时存储区域,在目标事件所在的存储区域和临时存储区域均不存在早于该目标生成时间的事件的情况下,才对待读取事件进行读取和处理。在存在的情况下,可以根据当前处理情况以及该事件的生成时间,确定针对该事件的处理策略。
需要说明的是,上述附图中虽然都是以中间方配置了3个存储区域为例,但是可以理解的是,中间方可以根据实际存储需求设置任意数量的存储区域。另外,虽然附图中均是以1个生产方为例,但是可以理解的是生产方也可以是多个,多个生产方同时向中间方发送各自生成的事件,并不影响本方案的实现。
结合图3,与前述一种基于多个存储区域的事件处理方法相对应,本说明书还提供了一种基于多个存储区域的事件处理系统,包括生产方、中间方和消费方,其中,中间方包括至少两个存储区域;
所述中间方,用于针对生产方发送的任一事件,确定该事件所对应的存储区域;并将其存储到所确定的存储区域中;
所述消费方,用于针对任一存储区域,确定当前待读取的目标事件,并确定其对应的目标生成时间;遍历所述中间方的其他存储区域,确定其中是否存在生成时间早于该目标生成时间的事件;
在不存在的情况下,读取所述目标事件并进行处理。
在一个实施例中,所述消费方,具体用于遍历所述中间方的其他存储区域中当前待读取的事件,确定其中是否存在生成时间早于该目标生成时间的事件。
在一个实施例中,所述消费方,还用于在确定其他存储区域中不存在生成时间早于该目标生成时间的事件的情况下,遍历所述目标事件所在的存储区域,确定该存储区域中是否存在生成时间早于该目标生成时间的事件;
在所述目标事件所在的存储区域,不存在生成时间早于该目标生成时间的事件的情况下,读取所述目标事件并进行处理。
所述消费方,还用于在所述目标事件所在的存储区域,存在生成时间早于该目标生成时间的事件的情况下,根据当前处理情况以及该事件的生成时间,确定针对该事件的处理策略。
在一个实施例中,所述中间方,还用于在确定无法将事件存储到所确定的存储区域中的情况下,将该事件存储到临时存储位置。
所述消费方,还用于在确定其他存储区域中不存在生成时间早于该目标生成时间的事件的情况下,遍历所述临时存储位置,确定其中是否存在生成时间早于该目标生成时间的事件;
在所述临时存储位置,不存在生成时间早于该目标生成时间的事件的情况下,读取所述目标事件并进行处理。
参见图9所示,与前述一种基于多个存储区域的事件处理方法相对应,本说明书还提供了一种基于多个存储区域的事件处理装置,应用于系统中的消费方,所述系统还包括生产方和中间方;其中,中间方包括至少两个存储区域,所述装置包括:
生成时间确定模块910,用于针对中间方的任一存储区域,确定当前待读取的目标事件,并确定其对应的目标生成时间;
遍历模块920,用于遍历所述中间方的其他存储区域,确定其中是否存在生成时间早于该目标生成时间的事件;其中,所述存储区域中的事件为中间方接收到生产方发送的、并存储到该存储区域中的事件;
事件处理模块930,用于在不存在的情况下,读取所述目标事件并进行处理。
上述设备中各个部件的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本说明书实施例还提供一种计算机设备,其至少包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行所述程序时实现前述的方法。该方法至少包括上述消费方执行的方法。
图10示出了本说明书实施例所提供的一种更为具体的计算设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
处理器1010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器1020可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述的方法。该方法至少包括上述消费方执行的方法。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书实施例可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书实施例各个实施例或者实施例的某些部分所述的方法。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,在实施本说明书实施例方案时可以把各模块的功能在同一个或多个软件和/或硬件中实现。也可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本说明书实施例的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本说明书实施例原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本说明书实施例的保护范围。
Claims (15)
1.一种基于多个存储区域的事件处理方法,应用于包括生产方、中间方和消费方的系统,其中,中间方包括至少两个存储区域,所述方法包括:
中间方,针对生产方发送的任一事件,确定该事件所对应的存储区域;并将其存储到所确定的存储区域中;
消费方,针对任一存储区域,确定当前待读取的目标事件,并确定其对应的目标生成时间;遍历所述中间方的其他存储区域,确定其中是否存在生成时间早于该目标生成时间的事件;
在不存在的情况下,读取所述目标事件并进行处理。
2.根据权利要求1所述的方法,所述遍历所述中间方的其他存储区域,确定其中是否存在生成时间早于该目标生成时间的事件,包括:
遍历所述中间方的其他存储区域中当前待读取的事件,确定其中是否存在生成时间早于该目标生成时间的事件。
3.根据权利要求1所述的方法,还包括:
所述消费方,在确定其他存储区域中不存在生成时间早于该目标生成时间的事件的情况下,遍历所述目标事件所在的存储区域,确定该存储区域中是否存在生成时间早于该目标生成时间的事件;
在所述目标事件所在的存储区域,不存在生成时间早于该目标生成时间的事件的情况下,读取所述目标事件并进行处理。
4.根据权利要求3所述的方法,还包括:
在所述目标事件所在的存储区域,存在生成时间早于该目标生成时间的事件的情况下,根据当前处理情况以及该事件的生成时间,确定针对该事件的处理策略。
5.根据权利要求1所述的方法,还包括:
所述中间方,在确定无法将事件存储到所确定的存储区域中的情况下,将该事件存储到临时存储位置。
6.根据权利要求5所述的方法,还包括:
所述消费方,在确定其他存储区域中不存在生成时间早于该目标生成时间的事件的情况下,遍历所述临时存储位置,确定其中是否存在生成时间早于该目标生成时间的事件;
在所述临时存储位置,不存在生成时间早于该目标生成时间的事件的情况下,读取所述目标事件并进行处理。
7.一种基于多个存储区域的事件处理方法,应用于事件处理系统中的消费方,所述事件处理系统还包括生产方和中间方;其中,中间方包括至少两个存储区域,所述方法包括:
针对中间方的任一存储区域,确定当前待读取的目标事件,并确定其对应的目标生成时间;遍历所述中间方的其他存储区域,确定其中是否存在生成时间早于该目标生成时间的事件;其中,所述存储区域中的事件为中间方接收到生产方发送的、并存储到该存储区域中的事件;
在不存在的情况下,读取所述目标事件并进行处理。
8.一种基于多个存储区域的事件处理系统,包括生产方、中间方和消费方,其中,中间方包括至少两个存储区域;
所述中间方,用于针对生产方发送的任一事件,确定该事件所对应的存储区域;并将其存储到所确定的存储区域中;
所述消费方,用于针对任一存储区域,确定当前待读取的目标事件,并确定其对应的目标生成时间;遍历所述中间方的其他存储区域,确定其中是否存在生成时间早于该目标生成时间的事件;
在不存在的情况下,读取所述目标事件并进行处理。
9.根据权利要求8所述的系统,
所述消费方,具体用于遍历所述中间方的其他存储区域中当前待读取的事件,确定其中是否存在生成时间早于该目标生成时间的事件。
10.根据权利要求8所述的系统,
所述消费方,还用于在确定其他存储区域中不存在生成时间早于该目标生成时间的事件的情况下,遍历所述目标事件所在的存储区域,确定该存储区域中是否存在生成时间早于该目标生成时间的事件;
在所述目标事件所在的存储区域,不存在生成时间早于该目标生成时间的事件的情况下,读取所述目标事件并进行处理。
11.根据权利要求10所述的系统,
所述消费方,还用于在所述目标事件所在的存储区域,存在生成时间早于该目标生成时间的事件的情况下,根据当前处理情况以及该事件的生成时间,确定针对该事件的处理策略。
12.根据权利要求8所述的系统,
所述中间方,还用于在确定无法将事件存储到所确定的存储区域中的情况下,将该事件存储到临时存储位置。
13.根据权利要求12所述的系统,
所述消费方,还用于在确定其他存储区域中不存在生成时间早于该目标生成时间的事件的情况下,遍历所述临时存储位置,确定其中是否存在生成时间早于该目标生成时间的事件;
在所述临时存储位置,不存在生成时间早于该目标生成时间的事件的情况下,读取所述目标事件并进行处理。
14.一种基于多个存储区域的事件处理装置,应用于系统中的消费方,所述系统还包括生产方和中间方;其中,中间方包括至少两个存储区域,所述装置包括:
生成时间确定模块,用于针对中间方的任一存储区域,确定当前待读取的目标事件,并确定其对应的目标生成时间;
遍历模块,用于遍历所述中间方的其他存储区域,确定其中是否存在生成时间早于该目标生成时间的事件;其中,所述存储区域中的事件为中间方接收到生产方发送的、并存储到该存储区域中的事件;
事件处理模块,用于在不存在的情况下,读取所述目标事件并进行处理。
15.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现如权利要求7所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010815006.XA CN111913807B (zh) | 2020-08-13 | 2020-08-13 | 一种基于多个存储区域的事件处理方法、系统及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010815006.XA CN111913807B (zh) | 2020-08-13 | 2020-08-13 | 一种基于多个存储区域的事件处理方法、系统及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111913807A true CN111913807A (zh) | 2020-11-10 |
CN111913807B CN111913807B (zh) | 2024-02-06 |
Family
ID=73284042
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010815006.XA Active CN111913807B (zh) | 2020-08-13 | 2020-08-13 | 一种基于多个存储区域的事件处理方法、系统及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111913807B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113821513A (zh) * | 2021-09-18 | 2021-12-21 | 阿里巴巴(中国)有限公司 | 数据处理方法、设备及存储介质 |
CN114567413A (zh) * | 2022-02-17 | 2022-05-31 | 中国银联股份有限公司 | 一种数据存储方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101901193A (zh) * | 2009-05-27 | 2010-12-01 | 北京启明星辰信息技术股份有限公司 | 一种数据的缓冲方法和服务端 |
JP2013242618A (ja) * | 2012-05-17 | 2013-12-05 | Nippon Telegr & Teleph Corp <Ntt> | イベント抽出装置及び方法及びプログラム |
CN105095199A (zh) * | 2014-04-16 | 2015-11-25 | 阿里巴巴集团控股有限公司 | 业务数据处理方法、装置和系统 |
CN109716317A (zh) * | 2016-09-02 | 2019-05-03 | 艾一克斯集团有限公司 | 用于创建时间准确的事件流的系统和方法 |
CN110597794A (zh) * | 2019-08-08 | 2019-12-20 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置和电子设备 |
-
2020
- 2020-08-13 CN CN202010815006.XA patent/CN111913807B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101901193A (zh) * | 2009-05-27 | 2010-12-01 | 北京启明星辰信息技术股份有限公司 | 一种数据的缓冲方法和服务端 |
JP2013242618A (ja) * | 2012-05-17 | 2013-12-05 | Nippon Telegr & Teleph Corp <Ntt> | イベント抽出装置及び方法及びプログラム |
CN105095199A (zh) * | 2014-04-16 | 2015-11-25 | 阿里巴巴集团控股有限公司 | 业务数据处理方法、装置和系统 |
CN109716317A (zh) * | 2016-09-02 | 2019-05-03 | 艾一克斯集团有限公司 | 用于创建时间准确的事件流的系统和方法 |
CN110597794A (zh) * | 2019-08-08 | 2019-12-20 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置和电子设备 |
Non-Patent Citations (2)
Title |
---|
尚文迪: "基于RFID技术的车间生产异常事件检测研究", 中国优秀硕士学位论文全文数据库 * |
林树宽等: "LPCEP:基于HTF存储策略和实例映射表的长过程复杂事件处理模型", 小型微型计算机系统, no. 01 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113821513A (zh) * | 2021-09-18 | 2021-12-21 | 阿里巴巴(中国)有限公司 | 数据处理方法、设备及存储介质 |
CN114567413A (zh) * | 2022-02-17 | 2022-05-31 | 中国银联股份有限公司 | 一种数据存储方法及装置 |
CN114567413B (zh) * | 2022-02-17 | 2023-06-30 | 中国银联股份有限公司 | 一种数据存储方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111913807B (zh) | 2024-02-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109144414B (zh) | 区块链数据的多级存储方法和装置 | |
CN111756550B (zh) | 一种区块链共识方法及装置 | |
CN109359118B (zh) | 一种数据写入方法及装置 | |
JP2021190074A (ja) | リソーススケジューリング方法、装置、設備、記憶媒体、及びプログラム | |
CN111553699B (zh) | 一种资源调度方法及装置 | |
CN110020846B (zh) | 一种转账业务处理方法及系统 | |
US10592317B2 (en) | Timeout processing for messages | |
CN111913807B (zh) | 一种基于多个存储区域的事件处理方法、系统及装置 | |
CN110020383B (zh) | 一种页面数据请求处理方法及装置 | |
US11102284B2 (en) | Service processing methods and systems based on a consortium blockchain network | |
CN109284301A (zh) | 数据核对方法及装置 | |
CN112448984A (zh) | 资源传输方法、电子设备及计算机存储介质 | |
CN111506580B (zh) | 一种基于中心化块链式账本的交易存储方法 | |
CN109582398A (zh) | 一种状态处理方法、装置及电子设备 | |
WO2020244243A1 (zh) | 一种将多个存储设备划分设备组的方法及装置 | |
CN108306926B (zh) | 一种车联网设备网关业务数据的推送方法和装置 | |
US11354055B2 (en) | Method and device for dividing storage devices into device groups | |
CN114500546A (zh) | 基于负载均衡集群的通信消息发送方法、装置及设备 | |
CN114138444A (zh) | 一种任务调度方法、装置、设备、存储介质及程序产品 | |
CN112463514A (zh) | 分布式缓存集群的监测方法和装置 | |
CN112799863A (zh) | 用于输出信息的方法和装置 | |
CN112258300B (zh) | 一种针对订单生成的审核方法及装置 | |
CN112416253B (zh) | 一种基于分布式存储的存储区域动态调整方法及装置 | |
CN109933413A (zh) | 业务实现方法及装置、电子设备、存储介质 | |
CN117992204A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |