Esper复杂事务处理引擎一小时入门
Esper复杂事务处理引擎一小时入门
什么是Esper
想要认识Esper,先要了解[CEP(Complex Event Processing)][1],引用里给出的是知乎的一个回答,笔者感觉比一些官方的、百科的解答更为贴切易懂。
Esper就是CEP的一个java的开源实现。
Esper官方网址:http://www.espertech.com/
Esper的特性
在探究Esper特性之前,我们先总结一下复杂事件的特性:
- 类型多样,不易建模
- 场景不可控,随时可能新增场景
- 逻辑复杂,难于描述
既需要汇总规律,又不准数据落地。
场景举例:
股市实时K线图、网站恶意操作监测、用户登入控制、实时数据统计等
针对复杂事件的这些特性,Esper具有相应的性质:
- 实时响应
- 极速扩展新事件
- 语法描述能力强大、类sql
事件和处理流程
一个基本的例子
引用Esper就不说了,直接搜maven esper,添加以来就好。
/*定义事件模型*/
public class Coder {private String Name;private int age;private double Salary;//省略getter/setter}
//
public class HelloEsperApp {public static void main(String[] args) throws InterruptedException { EPServiceProvider epService = EPServiceProviderManager.getDefaultProvider(); EPAdministrator admin = epService.getEPAdministrator(); //指定事件模型String coderModel = Coder.class.getName(); //描述复杂事件String epl = "select name,salary,age from " + coderModel;EPStatement state = admin.createEPL(epl); //添加事后处理state.addListener(new HelloEsperListener()); EPRuntime runtime = epService.getEPRuntime(); //模拟事件发生for (int i = 0; i <
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
