我一直在寻找用于流处理的Esper(和Storm)。.Esper似乎完全可以实现我想要的功能。即roling的意思,中位数,复杂的查询等……但我想知道的是一件事。
如何使用Esper扩展到多个实例?
据我了解,Storm可以处理分布式处理,但是有了Esper,您就可以自己解决问题。
在可预见的将来,我不需要这样做,但是随着我们的增长,我们的数据量也将随之扩展。我们很可能将其部署在Amazon EC2中。
在将它们发送到Esper应用程序之前,我需要运行多个服务器并分片数据吗?
有没有更优雅的处理方式?
-萨哈尔
最佳答案
您可以在 bolt 中运行一个Esper实例,这意味着Storm将处理元组/事件联合,并且Esper将处理在给定 bolt 中接收到的事件的CEP。
这包含一些有关将Esper嵌入Storm bolt 的代码和信息:
http://tomdzk.wordpress.com/2011/09/28/storm-esper/
然而...
您需要有一个用例,该用例支持处理数据子集的相对无状态的Esper引擎。
例如:您正在按城市计算每日平均温度。如果不使用基于城市字段的shuffleGrouping分配元组,那么每个城市的每个Esper bolt 可能会有不同的数据集。
基本上,在提交给该架构之前,请务必先阅读如何在Storm拓扑中分配数据。
关于amazon-ec2 - 如何使用esper进行横向扩展?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9164785/