一、CEP和ESP的概念
CEP:复杂事件处理,是一种新兴的基于事件流的技术,它用于处理事件、从事件流中发现复杂模式。它将系统数据看做不同类型的事件,通过分析事件间的关系,建立不同事件关系序列库,利用过滤、关联、聚合等技术,最终由简单事件产生高级事件或商业流程。
ESP:事件流处理,目的是从事件流中获得有用的事件,进而从中获得有用信息。
CEP/ESP适合的场景包括:监控、犯罪预防、网络攻击、市场趋势分析。
比如示例:
import com.espertech.esper.client.EPAdministrator;
import com.espertech.esper.client.EPRuntime;
import com.espertech.esper.client.EPServiceProvider;
import com.espertech.esper.client.EPServiceProviderManager;
import com.espertech.esper.client.EPStatement;
import com.espertech.esper.client.EventBean;
import com.espertech.esper.client.UpdateListener;
/**
1. 这是一个EventClass对象
*/
public class Apple {
private int id;
private int price;
public int getId()
{
return id;
}
public void setId(int id)
{
this.id = id;
}
public int getPrice()
{
return price;
}
public void setPrice(int price)
{
this.price = price;
}
}
// 2. 创建一个class实现UpdateListener接口
class AppleListener implements UpdateListener
{
public void update(EventBean[] newEvents, EventBean[] oldEvents)
{
if (newEvents != null)
{
Double avg = (Double) newEvents[0].get("avg(price)");
System.out.println("Apple's average price is " + avg);
}
}
}
调用:
import com.espertech.esper.client.EPAdministrator;
import com.espertech.esper.client.EPRuntime;
import com.espertech.esper.client.EPServiceProvider;
import com.espertech.esper.client.EPServiceProviderManager;
import com.espertech.esper.client.EPStatement;
import com.espertech.esper.client.EventBean;
import com.espertech.esper.client.UpdateListener;
/**
*/
public class Test {
public static void main(String[] arg