基于云计算架构实现复杂事件处理的系统及其方法技术方案

技术编号:8413048 阅读:273 留言:0更新日期:2013-03-14 02:07
本发明专利技术涉及一种基于云计算架构实现复杂事件处理的系统,其中包括事件分发节点、多个事件处理节点、事件处理节点组、事件去重节点、节点管理器。本发明专利技术还涉及一种利用该系统实现基于云计算架构进行复杂事件处理的方法。采用该种基于云计算架构实现复杂事件处理的系统及其方法,使得整个系统可以承载高并发、大量的事件数据,保证了输出事件的唯一性,并可以从其对应的事件处理节点组中随机选择一个正常节点进行复制,保证了上层业务的连续性,大大提高了复杂事件处理系统的整体可靠性,满足了大数据流、高并发、高实时性数据分析要求,在系统运行过程中保持业务连续性的条件下,完成对系统处理节点的动态调整,工作性能稳定可靠,适用范围广泛。

【技术实现步骤摘要】

本专利技术涉及计算机软件领域,特别涉及企业级高实时事件流分析系统领域,具体是指ー种。
技术介绍
复杂事件处理(Comp I ex Event Processing, CEP)技术是一种新兴的实时数据分析处理技术。传统数据挖掘技术是对海量数据进行事后处理,其特点是数据量庞大、分析逻辑复杂;传统的数据库分析技术是对一定规模的数据进行统计分析,其特点是数据量规模适中,分析逻辑较为简単。而复杂事件处理技术可以针对高速数据流进行实时的分析,具有 数据量大,实时性高的特点。复杂事件处理技术可以被应用于实时风险管理、实时产品营销等业务领域。一般地,复杂事件处理系统包括规则开发工具、事件输入流适配器、事件输出流适配器、事件处理引擎、关系型数据库等主要功能模块。目前复杂事件处理主要包含以下几个核心功能模块事件处理规则开发工具、事件处理引擎、外部数据库、数据接入接出适配器。复杂事件处理的技术实现主要存在两种模式,一种是传统的数据库或中间件厂商以关系型数据库为核心,对数据库核心进行改造和优化。另ー种是基于JVM (Java Virtual Machine)进程的复杂事件处理技术,即在ー个进程空间内完成事件的接收、事件的处理、事件的输出。以关系型数据库为核心的复杂事件处理技木,需要在上层封装所需要的数据接入适配、数据接出适配,其处理过程的本质还是将数据导入到数据库进行类SQL (StructuredQuery Language)的数据查询。以JVM进程为基础的复杂事件处理技术,除了同样要进行接入、接出数据适配外,需要对事件处理语言EPL (Event Processing Language)进行释义,再对数据流进行业务分析,其特点是处理过程中的业务数据大部分都保存在内存中。目前CEP引擎的开源实现以EsperTech公司的Esper处理引擎应用较为广泛。采用关系型数据库为核心的复杂事件处理技木,由于数据库架构的制約,当高实时数据量到达一定规模后,一方面容易产生数据库I/o的瓶颈,另一方面类SQL语言在大数据量的场景中性能优化较为复杂,适应多变的业务需求成本较高。采用JVM进程为核心的复杂事件处理技木,因为处理过程中相关的业务数据都在内存中,所以I/o操作影响较小,但由于每个进程可分配的内存空间有限,当发生大数据流时,容易造成JVM的内存耗尽,进ー步会导致业务的停滞。因此,JVM进程为核心的复杂事件处理技术其性能瓶颈是内存容量。同时需要注意的是,以内存计算为核心的复杂事件处理技术,不具备业务数据的持久化操作,在各种原因发生故障导致进程异常退出时,内存中的数据将发生丢失,这将直接导致上层业务功能的不可用。
技术实现思路
本专利技术的目的是克服了上述现有技术中的缺点,提供ー种能够满足大数据流、高并发、高实时性数据分析要求、保持业务连续性、实现对系统处理节点的动态调整、工作性能稳定可靠、适用范围较为广泛的。为了实现上述的目的,本专利技术的如下该基于云计算架构实现复杂事件处理的系统,其主要特点是,所述的系统包括事件分发节点,将高速到达的事件流分发到不同的事件处理节点中,并接收节点管理器的通知消息;多个事件处理节点,包含已有的通用事件处理引擎,接收来自所述的事件分发节点的事件,同时将处理后的新事件传递给事件去重节点,事件处理过程由所述的已有的通用事件处理引擎完成;事件处理节点组,包含至少二个所述的事件处理节点,且组内的每个事件处理节点完成相同的复杂事件处理业务逻辑; 事件去重节点,对新事件进行整理,去除重复事件所产生的输出事件;节点管理器,对所述的事件处理节点进行控制,并通知所述的事件分发节点事件处理相应的通知消息。该基于云计算架构实现复杂事件处理的系统中的通知消息为事件处理节点的新增或者事件处理节点的退出。该利用上述的系统实现基于云计算架构进行复杂事件处理的方法,其主要特点是,所述的方法包括复杂事件处理操作和复杂事件处理故障恢复操作,所述的复杂事件处理操作包括以下步骤(I)所述的事件分发节点进行初始化操作;(2)所述的事件分发节点对输入事件进行分发操作;(3)所述的事件处理节点对接收到的事件进行匹配和处理操作;(4)所述的事件去重节点接收各个所述的事件处理节点输出的事件;(5)所述的事件去重节点进行事件去重操作;(6)所述的事件去重节点将产生的事件发送至外部系统,由外部系统进行后续业务处理;所述的复杂事件处理故障恢复操作,包括以下步骤(a)所述的节点管理器将发生故障的事件处理节点的标识发送到所述的事件分发节点;(b)所述的事件分发节点根据该事件处理节点的标识找到相应的事件处理节点组;(C)所述的事件分发节点将发生故障的事件处理节点移出该事件处理节点组,即将发生故障的事件处理节点的标识从与其对应的事件处理节点组的标识映射关系中删除;(d)随机选择发生故障的事件处理节点所对应的事件处理节点组中的一个正常工作的事件处理节点作为被复制节点;(e)调用所述的被复制节点的对外接口,暂停其业务处理工作;(f)调用所述的被复制节点的对外接口,读取该被复制节点的业务状态上下文数据C;(g)调用所述的被复制节点的对外接ロ,读取该被复制节点当前已经接收的最后ー个事件序号N ;(h)调用所述的被复制节点的对外接ロ,恢复该被复制节点的业务处理工作;(i)以启动进程的方式,创建新的事件处理节点;( j )所述的新的事件处理节点进行初始化,设置相应的节点标识;(k)所述的节点管理器将所述的业务状态上下文数据C写入所创建的该新的事件处理节点中;(I)所述的节点管理器将记录的当前已经处理的最后ー个事件序列号N写入所创建的该新的事件处理节点中; (m)所述的节点管理器同时将新的事件处理节点标识、URL发送给所述的事件分发节点进行注册;(η)所述的事件分发节点将所述的新的事件处理标识加入到相应的事件处理节点组中,并更新事件处理节点组标识与事件处理节点标识的映射关系;(O)所述的节点管理器将事件序列号N、新的事件处理节点标识发送至所述的事件分发节点,通知该事件分发节点发送后续事件;(P)所述的事件分发节点向所创建的所述的新的事件处理节点发送序号为N的事件以及后续的事件;(q)所创建的所述的新的事件分发节点对序列号N的及以后的事件进行正常处理。该实现基于云计算架构进行复杂事件处理的方法中的事件分发节点的初始化操作,包括以下步骤;( 11)加载事件类型,为每个事件实例找到唯一的事件类型;(12)加载EPL列表,所述的EPL列表中的每条记录均包含EPL唯一标识和EPL语句;( 13)加载事件处理节点组列表,ー个事件处理组标识将对应多个事件处理节点URL,所述的事件处理节点组列表中的每条记录均包含事件处理节点组标识和事件处理节点 URL ;(14)以事件类型和EPL列表为基础生成事件类型与EPL关系映射表,其中ー个事件类型对应到多个EPL语句,同时,ー个EPL语句中包含多个事件类型,该事件类型与EPL关系映射表中的每条记录均包含事件类型和EPL唯一标识;(15)以EPL列表和事件处理节点组为列表生成EPL与事件处理节点组映射关系表,每个EPL语句都唯一对应ー个事件处理节点组标识,该EPL与事件处理节点组映射关系表中的每条记录均包含EPL唯一标识和事件处理节点组标识;(16)根据事件本文档来自技高网
...

【技术保护点】
一种基于云计算架构实现复杂事件处理的系统,其特征在于,所述的系统包括:事件分发节点,将高速到达的事件流分发到不同的事件处理节点中,并接收节点管理器的通知消息;多个事件处理节点,包含已有的通用事件处理引擎,接收来自所述的事件分发节点的事件,同时将处理后的新事件传递给事件去重节点,事件处理过程由所述的已有的通用事件处理引擎完成;事件处理节点组,包含至少二个所述的事件处理节点,且组内的每个事件处理节点完成相同的复杂事件处理业务逻辑;事件去重节点,对新事件进行整理,去除重复事件所产生的输出事件;节点管理器,对所述的事件处理节点进行控制,并通知所述的事件分发节点事件处理相应的通知消息。

【技术特征摘要】

【专利技术属性】
技术研发人员:王延炯
申请(专利权)人:上海普元信息技术股份有限公司
类型:发明
国别省市:

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

1