分布式规则引擎

3

我们已经使用Drools引擎几年了,但我们的数据增长了,我们需要找到一个新的分布式解决方案,能够处理大量数据。

我们有复杂的规则,需要查看几天的数据,这就是为什么Drools非常适合我们的原因,因为我们只需要在内存中保存数据。

您有没有类似于Drools但是分布式/可扩展的建议?

我已经对此进行了研究,但未找到符合我们要求的解决方案。

谢谢。

5个回答

2
Spark提供了比传统单节点应用更快的Drools规则应用到数据的方式。Drools-Spark集成的参考架构可能如下所示。此外,HACEP是一种可扩展和高可用性的Drools复杂事件处理架构。HACEP结合了Infinispan、Camel和ActiveMQ。请参阅以下文章了解使用Drools的HACEP。

enter image description here

您可以在以下GitHub存储库中找到Drools-Spark集成的参考实现。

1

1

0

请查看https://www.elastic.co/blog/percolator

您可以将规则转换为Elasticsearch查询。现在,您可以针对Percolator中的数据进行过滤,它会返回与提供的数据匹配的规则。


0
首先,根据我的经验,我可以看到对于大量数据,我们可以高效地应用Drools(也许需要根据您的要求进行一些调整)。它与Apache Spark轻松集成。将规则文件加载到内存中进行Spark处理只需要很少的内存... Drools也可以与Spark流和Spark批处理作业一起使用...
请参考我的完整文章并尝试。
其替代方案可能是.... JESS实现了Rete引擎,并接受多种格式的规则,包括CLIPS和XML。
Jess使用增强版的Rete算法来处理规则。Rete是解决困难的多对多匹配问题的非常有效的机制。
Jess具有许多独特的功能,包括向后链接和工作内存查询,当然Jess可以直接操作和推理Java对象。Jess还是一个强大的Java脚本环境,您可以在其中创建Java对象、调用Java方法和实现Java接口,而无需编译任何Java代码。

自己试试。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接