Esper-简介

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,ESP,Event Stream)