drools - CEP 是我需要的吗(系统状态和事件重播)

标签 drools complex-event-processing esper

我正在寻找 CEP 引擎,但我不知道是否有任何引擎满足我的要求。 我的系统必须处理多个事件数据流并生成复杂的事件,这正是几乎任何 CEP 引擎都完美适合的(ESPER、Drools)。

我将所有原始事件存储在数据库中(这不是 CEP 部分,但我这样做)并使用规则(或连续查询或其他内容)来生成对复杂事件的自定义操作。但我的一些规则取决于过去发生的事件。 例如:每次我的配偶来或离开家时,我都可以让传感器发送事件,如果我的车和我喜欢的女人的车都在房子附近,我会收到短信“危险”。

问题是,随着事件处理服务的重新启动,我丢失了有关系统状态的所有信息(我的妻子在家吗?),要恢复它,我需要在未知的时间内重播事件。系统状态不仅取决于原始事件,还取决于复杂事件。

当我需要一些关于过去复杂事件的报告时,也会出现同样的问题。我将原始事件数据存储在数据库中,并且可以生成这些重播原始事件的复杂事件,但我不知道我必须重播它们的确切时间段。

同时,很明显,对于大多数规则来说,可以自动查找过去(或加载要处理的事件的时间段)要处理的事件数量,以恢复系统状态。 如果给定的操作取决于我妻子是否在家,则 CEP 系统必须请求最后的状态更改。如果要求报告复杂事件并且复杂事件取决于上一期间的平均价格,则应重播该期间的所有价格变化事件。等等...

如果我错过了什么?

最佳答案

RuleCore CEP Server如果我没记错的话可能会解决你的问题。如果您重新启动它,它不会丢失状态,并且它包含一个虚拟逻辑时钟,以便您可以使用任何时间概念重播事件。

关于drools - CEP 是我需要的吗(系统状态和事件重播),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4995747/

相关文章:

jboss - 为什么 'from'关键字会向后迭代?

drools - 检查 Drools 列表中是否存在对象

java - Esper 如何将事件与适当的查询相匹配

java - 在 Flink CEP 中并行处理一个流数据上的多个模式

java - Spring Boot JPA .save() 更新所有记录

ssh - Drools Workbench通过SSH访问存储库

streaming - 为我们的流事件构建实时规则引擎的最佳方法

java - 从 Esper + sockets 开始

java - 埃斯珀运行一段时间后停止工作

java - 异能引擎:Can't I use '<' or '>' after 'inner join on' ?