AliKevin 写道
本文概要介绍事件流引擎Esper相关的内容.
一、Esper简介
Esper is a component for CEP and ESP application.即 Esper是用于CEP(复杂事件处理)和ESP(事件流处理)应用程序的组件.
Esper是纯Java开源复杂事件和事件流引擎,可以监测事件流,并在特定事件发生时触发某些动作。Esper引擎是为了满足事件进行分析并做出反应等这些应用需求而产生的。这些应用要求实时或者接近实时处理事件(或消息)。这类应用具有高吞吐量、低响应时间和复杂的计算等特点。
Esper引擎的典型应用有:
* 业务处理管理和自动化(处理监控,业务活动监控,异常报告,经营智能化等等)
* 财务(算法交易,欺诈检查,风险管理)
* 网络及应用程序监控(入侵检测,SLA(Service Level Agreement)监控)
* 传感器网络应用(RFID 读取,生产线调度和控制,空中交通)
二、Esper简单示例
示例1
1.创建java object 类型的事件
public class OrderEvent {
public double price;
public String itemName;
public OrderEvent(){
super();
}
public OrderEvent(double price, String itemName){
super();
this.price = price;
this.itemName = itemName;
}
public double getPrice() {
return price;
}
public String getItemName() {
return itemName;
}
}
2.创建事件监听类
public class OrderListener implements UpdateListener {
public void update(EventBean[] newEvents, EventBean[] oldEvents) {
EventBean eb = newEvents[0];
System.out.println(eb.get("avgPrice"));
}
}
3.主测试类
public class TestMain {
/**
* @param args
*/
public static void main(String[] args) {
// Creating a configuration
Configuration config = new Configuration();
config.addEventTypeAutoName("com.alibaba.esper.tester.example1");
// Creating a statement
EPServiceProvider epService = EPServiceProviderManager.getDefaultProvider(config);
String expression = "Select Avg(price) As avgPrice From OrderEvent.win:time(30 sec)";
EPStatement statement = epService.getEPAdministrator().createEPL(expression);
// Adding a listener
statement.addListener(new OrderListener());
// Sending events
for (int i = 0; i < 10; i++) {
epService.getEPRuntime().sendEvent(new OrderEvent((i + 1) * 10, "Name" + i));
}
}
}
4.测试输出
log4j:WARN No appenders could be found for logger (com.espertech.esper.core.service.EPServiceProviderImpl).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
10.0
15.0
20.0
25.0
30.0
35.0
40.0
45.0
50.0
55.0
三、参考资源
1.官网:
http://www.espertech.com
2.源码:
http://dist.codehaus.org/esper/
分享到:
相关推荐
**Esper简介** Esper是Java开发的事件处理引擎,它允许开发者在运行时对持续流入的数据流进行分析和模式识别。Esper支持SQL-like语法,可以方便地定义事件模式和规则,用于实时检测和响应特定的事件序列。 **REST...
##简介 esper入门DEMO ##常用窗口 win:length(size) //攒够size条数据后触发UpdateListener()函数。滑动窗口,攒满之后新来一个移除一个,并触发。 win:length_batch(size) //攒够size条数据后触发,并清空队列。再...
**1.1 CEP与事件序列分析简介** 复杂事件处理(Complex Event Processing,简称CEP)是一种用于实时分析和响应大量数据流中的模式的技术。Esper作为一款高性能的CEP引擎,在处理大量事件时表现出色。该章节首先介绍...
Esper是一个事件流处理(ESP)和事件关联引擎(CEP的,复杂事件处理)。Esper的目标是针对实时事件驱动架构(EDA)。当Esper监测到事件流中又符合条件的时间发生时,即可触发Plain Old Java Objects(POJO)编写的...
#### 四、Esper 简介 Esper 是一种专门用于处理事件流的工具,其设计目的是为了缩短从概念到生产的开发周期。Esper 支持丰富的事件处理语言 (EPL),使得开发者能够快速构建高性能的应用程序。 - **Esper 的特点**...
##### CEP与事件序列分析简介 CEP是一种技术,用于实时地识别、分析和响应复杂的模式或情境,这些模式或情境是由大量简单的事件组成的。Esper通过其特有的事件驱动架构实现了这一目标,能够帮助开发者构建出能够...
对于初学者来说,EPL的基本概念可以在第5.1节“EPL简介”中找到;而对于模式的理解,则可以在第6.1节“事件模式概述”中学习。此外,Esper还提供了详细的JavaDoc文档,这对于深入了解API非常有帮助。 #### 三、服务...
Esper简介与事件流处理 - **Esper**:Esper是一款专为事件流处理和复杂事件处理(Complex Event Processing, CEP)设计的强大引擎。它能够在事件流中检测到特定模式时触发预定义的动作。 - **应用场景**:Esper...
#### 一、Esper简介与应用场景 **Esper** 是一个事件流处理和复杂事件处理(Complex Event Processing,简称 CEP)的引擎。它提供了一个强大的实时事件驱动框架,能够监测并响应事件流中的特定事件。这使得Esper在...
### Esper参考文档解析 #### 技术概览 **1.1 CEP与事件流分析简介** 复杂事件处理(Complex Event Processing,简称CEP)是一种用于处理和分析大量实时数据的技术,尤其适用于需要快速响应变化的数据环境。在现代...
### Esper 4.3.0 使用手册核心知识点详解 #### 一、技术概览 **1.1 CEP与事件流分析简介** - **CEP(Complex Event Processing,复杂事件处理)**: 是一种用于实时分析大量事件数据的技术,旨在识别出有意义的...
##### 1.1 复杂事件处理与事件流分析简介 复杂事件处理是指在事件流中检测出有意义的模式的过程。这包括但不限于识别事件序列、模式匹配以及聚合操作等。事件流分析则是指对实时事件数据进行分析的技术,通常涉及...
此外,IBM的Stream Base、Borealis、Hstreaming和Esper也是早期的实时计算解决方案。 淘宝在实时计算领域有其独特实践。银河流数据处理平台是一个基于actor模型的分布式流数据计算框架,采用akka作为底层支持,它能...
#### 一、Rifidi Edge Server 简介 Rifidi Edge Server 是一款开源的 EPC RFID(电子产品代码射频识别)过滤和采集层中间件。该软件旨在为用户提供一种高效的方式来管理 RFID 设备的数据流,支持多种 RFID 阅读器,...