我正在开发一个基于 Web 的多客户端应用程序,该应用程序分析传感器数据并应使用规则引擎根据此数据调用操作。此应用程序的每个客户端都有一组环境传感器(10s - 100s)和一组规则,每次传感器值发生变化时都要评估(传感器值被复制到数据库中)。一组基本规则通常会被不同的客户端重用,但是这些规则是针对每个客户端单独参数化的(例如,时间相关的),并且每个客户端都有不同数量的传感器和规则,可以单独配置。有些规则甚至可能特定于单个客户端。
我相信对于这样的实现来说,drools 可能是一个不错的选择——使用 drools guvnor 来管理每个客户端的规则。每个客户都有自己的知识库和规则执行会话。
我想知道这样的环境是否会扩展,是否有一个基准或现实世界的例子,有人在这种情况下使用了流口水。
我能找到的大多数基准测试都是通过对越来越多的事实执行规则的能力来评估不同的规则引擎。在我的场景中,事实的数量会相对稳定(每个客户端),而可伸缩性会受到客户端数量和许多知识库和会话的并发应用程序的限制。
欢迎对有关此可扩展性问题的基准或规则引擎比较发表任何评论。我也很高兴听到每个客户都有自己的规则和数据集可以处理的实际实现。