我的目标是与发布者和消费者一起制作分布式应用程序,我使用CEP处理数据流以生成事件消费者的事件通知。
Esper和Apache Storm之间的区别是什么?
我可以实现Storm只用Esper做什么,我什么时候应该考虑将Esper与Storm结合?
我很困惑,我认为Esper提供了相同的功能。
答案 0 :(得分:2)
Storm是一个分布式实时计算系统,通常可以用于任何目的,而Esper是Event Stream Processing和事件关联引擎(复杂事件处理),因此Esper更具体。 以下是它们的一些用例:
在选择它们时,您可以考虑更多标准:
答案 1 :(得分:2)
Storm提供了运行代码片段的抽象,并提供了管理分发方面的价值,例如工作人员,管理,重启。无论你插入什么代码都是你的代码工作,你的代码必须担心它如何以及在何处保持状态,例如计数或其他派生信息。 Storm通常用于提取 - 转换 - 加载或将流摄入到某个商店中。
Esper通过提供符合SQL92的“事件处理语言(EPL)”提供用于检测事件序列之间情况的抽象。它是一种富有表现力,简洁和可扩展的方法,可以在不编写任何代码的情况下检测内容。可以动态注入和管理EPL,因此您可以在运行时实现添加和删除规则而无需重新启动。如果您使用代码执行此操作,则始终必须重新启动JVM / workers / topology。
Esper通过直接与Kafka Streams集成,具有横向可扩展性。但目前这个代码并不是开源的。
答案 2 :(得分:0)
在我看来,风暴可以提供良好的资源管理,如负载平衡,机器停机时自动重启,添加机器或任务的更简单方法等,如果只使用esper,你必须自己处理它。