Esper近况:事件流处理框架

Esper(InfoQ曾在一年前报道其1.0版本的发布消息)是一个事件流处理(Event Stream Processing,ESP)和复杂事件处理(Complex Event Processing,CEP)的系统,它可以监测事件流并当特定事件发生时触发某些行动——可看作是把数据库反过来,语句是固定的,而数据流进进出出。事件处理是软件行业的一个发展趋势,已有数家大厂商以及许多初创企业加入到该市场中。其常有的应用例子包括系统自动交易、BAM、RFID、高级监测系统、欺诈检测,甚至直接集成进SOA。InfoQ恰遇Esper的创始人,向他了解了项目的近况,以及最近的基准测试问题。

如Esper开发小组所说,Esper现在是仅有的纯Java开源ESP/CEP引擎,由EsperTech公司提供商业支持服务,而这个公司也在维护一个同样的.Net项目。

BEA得到了Esper授权,将在修改后在加入到六月发布的WebLogic Event Server中。根据多方面的反馈,Thomas跟InfoQ谈道:

我相信Esper在BEA的产品中占一席位的事实,在多个方面都有助于Esper的发展。首先,我们所获得的反馈的声音对于Esper的改进有很重要的作用。其次,BEA的产品从总体上提高了CEP/ESP技术的知名度,并且因此扩大了市场的共识。第三,这是Esper技术的开放性,可扩展性,适应企业级应用的最好的证明。Esper社区和用户群都真的为此而感到自豪。

随着市场空间的扩大,多种实现之间出现的竞争,标准化能给该行业带来一定的好处。Thomas对CEP语言标准化的潜力和背景作了评价:

CEP社区显然把CEP和ESP看作是互补的,并且认为其他手段(如贝叶斯网络或神经网络)也可应用于CEP的问题。由于存在各种实现技术,各厂商又各执己见,ANSI SQL标准化委员会在扩展SQL基础上所提供的“行序列的模式匹配”似乎成为最重要的曙光。

对于这个初步的课题当然会有进一步的研究,并且标准化很可能会超出ESP/CEP语言标准化的范围。

Esper近期最突出的消息是在八月中旬发布了一个性能基准测试工具及公布了性能测试结果:

Esper在双2GHz CPU的Intel系统测试环境下,处理超过500 000个事件/秒;在VWAP基准测试中在有1000语句的情况下,引擎延时平均小于3微妙(在10us时超过99%的预测准确率)——最高时有70 Mbit/s流量并占用85%的CPU资源。

虽然这个基准测试是基于一个相当简单的用例,其发表的目的是震动整个行业,因为它提供了完整的工具集来重现测试结果。Esper事件服务器监听远端客户端通过网络传送过来的股票市场事件信息。Esper引擎是通过一个滑动的时间窗口或事件窗口,来实时计算输入信息的成交量加权平均价。当被问及该基准测试的必要性时,Esper回应道:

整个CEP市场已被含糊不清的信息所包围,每个厂商都在各自的宣传单上做文章,避开详细地交待实际性能和延时。在这个领域中还没有对它们作比较的基准测试。

在这个行业中含糊的性能信息已经受到 Progress Apama和 其他人的批评。以下是来自于Apama的博客中的抱怨的声音:

……Skyler处理速度高达200,000条/秒……主要特征:Coral8每秒处理从数千到百万计的事件……StreamBase性能领先,每秒处理超过1百万个事件,反应时间接近零……Aleri Labs打破了亚毫秒反应时间的障碍……
Apama自己也 说过“一个能处理数千事件每秒的高性能、可伸缩的引擎”这种话。同样的措词在BEA也能找到, WebLogic Event Server公告了似乎较差但较为精确的指标“当我们的产品准备好,它将提供50,000复杂事件/秒的处理速度”。

那些测试结果似乎确定了在这个领域里“数十万”事件每秒是普遍的,毫无例外。同时也正显示了Esper 在特定场景中的性能表现。它同样给了用户群有价值的工具来更好地得知实际性能,而不是听信厂商任意的令人充满疑惑的宣传,对有价值的开源软件普遍怀有的偏见。

Esper小组已经在其wiki上发布了所有运行的详情,并且已更新了网页的性能部分和性能最佳实践部分。另一个基准测试的来源是最近成立的STAC基准测试委员会,该委员会的目的是为技术的交易而提供由客户推动的基准测试标准。

请点击这里获取InfoQ之前有关Esper和CEP背景的相关报道:http://infoq.com/esper。

查看英文原文: Catching up with Esper: Event Stream Processing Framework

你可能感兴趣的:(Esper近况:事件流处理框架)