浅显事件流处理NEsper(一)

   
对实时信息分析以及处理,常常要客户应用程序的开支相应功能。一般地,这些职能要提供以下的处理流程,分析得到的数量,筛选数据,提取出有因此底消息,然后将该经过一定的花样表现出。由于具体实时信息之高并发性和高吞吐量的需求,这就是需要客户应用程序具有惊人扩展性和应能力,而于多少处理领域。NEsper就是一个.NET
开源之指向此类题材的事件流处理解决方案,其目的在于简化有夫要求的客户应用程序的支付。

1.1.CEP和事件流

NEsper 的目的在为应用程序提供分析和响应事件之要求。典型的下需求如下

• 业务流程管理与自动化。(提供流程监督,异常报告)

• 财务(算法交易,欺诈检查,风险管理)

• 网络与应用程序监控(入侵检测,SLA(Service Level Agreement)监控)

• 传感器网络使用(RFID 读取,生产线调度以及决定,空中交通)

这些下的同特征是,有实时或相近实时事件处理的要求,有时也称为复杂事件处理和事件流分析。其工作事件有所吞吐量,延时性及工作的复杂等关键因素。

• 高吞吐量 – 处理大量底信息(1000到100K每秒的信中的应用程序)

• 低延迟 – 应用在实时条件下产生的(从几毫秒到几乎秒钟)的反射

• 复杂的精打细算 –
应用程序根据规则检测相关事件,过滤事件,将对准满足条件的风波在基于时间的波流或冲窗口期的轩然大波流中,当事件离开时接触相应的操作。

NEsper的轩然大波引擎就是用来组织此类应用需求,并会扩大复杂事件处理。

1.2.CEP和关系数据库

关系数据库和结构化查询语言的目标在于处理相对静态的还要发生复杂查询要求的运体系的数要求。因此大部分底马上好像数据库(基于内存的数据库除外)将数据存储于硬盘上。因此对其优化往往在硬盘存取访问的优化。

应用程序常常使查询来获取数据库中的数额。如果应用程序需要各国秒10破查询数据,那么必然发生相应频繁的数量查询。对于各级秒多底大的恳求,这种艺术并非表现的挺优异。

数据库的触发器可以对之换代操作作出相应响应。然而数据库的触发器会好缓慢,并且不可知轻轻松松的对复杂条件进行逻辑检测与响应。

对照传统的关系数据库,在查询性能方面基于内存的数据库可能会见还可复杂事件处理应用程序。然后内存的数据库并没对准此类查询性能需求方面有着优化。

1.3.NEsper引擎

NEsper
的劳作规律有些近乎数据库倒置。与习俗的优先囤后查询数据的不二法门各异。NEsper引擎预先安装查询条件,然后为实时数据经过这些查询条件,引擎抓取符合条件的数据,这种查询是接连不停的。

其提供简单栽艺术处理这些事件,事件模式和事件流查询。

NEsper提供基于表达式的事件相当规则。模式匹配引擎是一个状态机的贯彻。这种事件处理的不二法门是对此到或去的事件,进行匹配同处理。他依据时间窗口的波流。

一致NEsper提供了另外一栽方法。这种基于窗口事件流,他提供聚合,连接,分析函数,来拍卖这些复杂的风波。对过EPL(NEpser定义的平仿类sql的语法
)查询者波窗口。获取满足条件的事件。EPL语言类吃SQL,但是与sql也殊。在EPL中询问基于视图而非表。视图提供成千上万操作,用便能起事件流中获取相应的数码。

NEsper提供了对应的API,支持上述两栽艺术 。

1.4所用的老三着担保

NEsper 的运行条件急需以下的老三正在担保

• ANTLR EPL syntax.的别和解说工具, 在编译环境时要可以看:
http://www.antlr.org 。

• CGLIB 基于. The Apache 2.0 许可的开源字节码的动态变化工具。

• Apache Log4Net 开源日志工具。

NEsper 其他编译和测试环境需要之老三正值担保

• NUnit 基于.NET的美好单元测试框架。

• MySQL /SQL Server:Nesper 的 sql测试套件。

相关文章:

事件流处理框架NEsper for
.NET

相关文章