Drools Fusion的高可用性选项?

Drools Fusion的高可用性选项?,drools,apache-storm,failover,fusion,Drools,Apache Storm,Failover,Fusion,我一直在挖掘,似乎: 1) Drools Fusion 6没有本机/内置故障切换解决方案 2) 支持持久会话,但它们似乎仅限于保存所有/检索所有,例如,无法有效地添加和删除单个事件(如hibernate)会从数据库中添加/删除单个记录。对于大型、长时间运行的数据集(流模式),这将非常昂贵 3) 持续会话是一种局部解决方案,我不清楚我们甚至会如何操作冷/热/热备用 另一方面,Storm和Trident处理故障切换的所有方面,但对CEP的支持有限,我正在讨论使用带有Storm和Storm tick元

我一直在挖掘,似乎:

1) Drools Fusion 6没有本机/内置故障切换解决方案

2) 支持持久会话,但它们似乎仅限于保存所有/检索所有,例如,无法有效地添加和删除单个事件(如hibernate)会从数据库中添加/删除单个记录。对于大型、长时间运行的数据集(流模式),这将非常昂贵

3) 持续会话是一种局部解决方案,我不清楚我们甚至会如何操作冷/热/热备用


另一方面,Storm和Trident处理故障切换的所有方面,但对CEP的支持有限,我正在讨论使用带有Storm和Storm tick元组的自定义解决方案,但讨厌重新发明轮子

我认为在Storm Trident中,状态必须相对简单,这样才能适合键值对,并且值不能太大。例如计数或求和或每个键的简单聚合。大多数人似乎在三叉戟上使用了一些基于时间的键和总键。如果存在复杂状态和多个键,Storm Trident似乎会崩溃,无法保证所有状态之间的完全一致性。复杂事件处理为许多查询和许多上下文保持丰富的状态,例如中间模式匹配、派生索引或数据窗口。所有这些都不适合三叉戟。根据您的要求,“三叉戟”可能已经足够好了。

您想要实现什么?Drools Fusion的故障转移,读取时具有高可用性?无写入?CEP引擎将包含大量长期处于活动状态的事件,无法接受在当前状态下丢失事件。我们需要一个完整的故障切换解决方案,例如,如果我们丢失了一个节点,我们就不会丢失已注入的事件。我们也在考虑故障转移上的重播策略,基本上存储事件,并在主节点出现故障时将其重播到新节点中,但这会带来一些复杂问题,例如要重播哪些事件。