最近因为项目需要,所以对 CEP 进行研究。
CEP
什么是 CEP, 全称是Complex Event Processing (复杂事件处理)。 CEP 是一种新兴的基于事件流的技术,它将系统数据看作不同类型的事件,通过分析事件间的关系,建立不同的事件关系序列库,利用过滤、关联、聚合等技术,最终由简单事件产生高级事件或商业流程。CEP适合的场景包括实时风险管理、实时交易分析、网络诈欺、网络攻击、市场趋势分析等等。我们的项目是属于 RFID 领域,所以我们选择了 Esper。
Esper
Esper 的网址是 http://esper.codehaus.org。 我们可以访问该网站首页,有几种典型的应用最需要 Esper,我摘录如下:
-
Business process management and automation (process monitoring, BAM, reporting exceptions, operational intelligence) 业务处理管理和自动化(处理监控,BAM-business activity monitoring,业务活动监控,异常报告,经营智能化等等)
- Finance (algorithmic trading, fraud detection, risk management) 财务(算法交易,欺诈检查,风险管理)
- Network and application monitoring (intrusion detection, SLA monitoring)网络及应用程序监控(入侵检测,SLA监控-Service Level Agreement)
- Sensor network applications (RFID reading, scheduling and control of fabrication lines, air traffic) 传感器网络应用(RFID 读取,生产线调度和控制,空中交通)
Esper 是纯Java开源ESP/CEP引擎,可以监测事件流,并在特定事件发生时触发某些行动。Esper引擎是为了满足对事件进行分析并做出反应等这些应用需求而产生的。这些应用要求事实或接近事实处理事件(或消息)。有时候是为了应对复杂事件处理(CEP)和事件流分析的。关键要考虑这些类型应用的(高)吞吐量、(低)响应时间和需求逻辑的复杂程度(复杂计算)。
Esper 的中文文档很少,所以只能到官网去啃E文了。以下列举了几个我认为对初学者比较重要的章节进行介绍。
- Tutorial-本篇是 Esper 的教程,主要介绍了(1)什么是Esper,它有什么优点,包括哪些component(2)什么是事件流,什么是复杂事件。(3)什么是 EPL(4)如何开发一个事件驱动的应用(5)如何设计事件(6)事件流分析(7)事件模式匹配(8)如何结合事件流分析与模式匹配
- Quick Start - 本篇主要描述如何快速使用 Esper,包括(1)安装 (2)创建Java事件类,POJO对象作为事件(3)创建一个 Statement (4)添加一个Listener(5)发送事件(6)Esper配置
- Articles and Presentations, 文章和报告,这里列举了某些文章和展示材料,有些sample可以下载,对于学习和熟悉很有帮助
- Solution Patterns,解决方案模式,使用Q&A的模式,对CEP 和 Esper 进行阐述,对于整个 Esper 的背景知识,会有很大帮助
- Short Case Study, 简短的个案研究,以传输监控为例,进行分析,
- Longer Case Study,较大个案研究,多个事件构成一次事务,对此进行分析
- Additional Examples,其它示例,描述了怎么在 JMS, J2EE等环境里使用
- Technology Links,技术链接,一些参考网站的引用
- Documentation,文档,这里有很多文档供下载到本地
- Building Esper,介绍如何使用 Maven 来build Esper
Quick Start
使用 Esper 的基本步骤
(1)创建一个 Configuration 实例
(2)通过 EPServiceProviderManager 获得 EPServiceProvider 对象
(3)通过 EPServiceProvider 和 EPL 查询语句,创建 EPStatement
(4)创建一个 class 实现 UpdateListener 接口, 并把这个 listener 和 EPStatement 挂钩
(5)使用epService.getEPRuntime().sendEvent(event)发送事件
我这里举一个实例吧
(1)
----待续
分享到:
相关推荐
在现代信息技术领域中,CEP 已成为处理大量动态数据的关键技术之一。 - **事件**:事件是指现实世界或软件系统中发生的事情的一段数据表示。 - **事件处理**:指对一系列信息(即事件)进行跟踪、分析的过程,并...
esper引擎的处理模型是其核心组成部分之一。esper引擎采用了一种事件流处理模型,其中包含事件的插入流(Insert Stream),事件的移除流(Remove Stream)以及事件的过滤器和where子句。esper引擎通过这些机制来对事件流...
Esper是一款开源的CEP引擎,旨在提供一个从概念到生产过程的快速开发周期。它支持多种数据表示形式,如Java对象、Map对象、XML等,并提供了丰富的过滤、聚合等功能,使得开发者能够轻松地构建出高效、灵活的应用程序...
数据中心是企业的核心基础设施之一,负责处理和存储大量的数据。一个完整的数据中心应该具备 IT 基础设施(主机、存储、网络)、企业级 ETL(数据仓库)平台、数据存储中心、数据共享服务、应用层、统一门户、数据...
Storm可以方便地在一个计算机集群中编写与扩展复杂的实时计算,Storm之于实时处理,就好比Hadoop之于批处理。Storm保证每个消息都会得到处理,而且它很快——在一个小集群中,每秒可以处理数以百万计的消息。更棒的...
- **IT基础设施**:包括主机、存储、网络等基础组件,是数据中心的核心要素之一。这些硬件设施为数据处理和存储提供了物理支持。 - **企业级ETL平台**:专门用于数据采集、清洗、转换和加载的平台,确保数据能够以...
2015年,基于Esper的CEP系统依赖单服务器,硬件资源有限,性能表现不佳。 2017年,采用C++实现的Dolphin 1.0,同样受限于单服务器和硬件资源,但性能有所提升。 2018年,基于Flink的Sabre系统引入,支持多源异构数据...
JavaScript作为互联网上最广泛使用的编程语言之一,为创建动态和交互式的网页提供了强大的工具。在ChatbotProject中,JavaScript将用于处理用户的输入、解析消息、执行逻辑以及返回适当的响应。这涉及到JavaScript的...
此外,实时数据处理技术也经历了从Esper、Storm到Spark Streaming和Flink的迭代,最终逐渐收敛至Flink作为主流实时数据处理框架。 ##### 2.2 当前技术栈 目前携程机票的数据仓库主要基于以下几种类型的数据: 1. ...