Drools与多个KieSession共享静态事实

时间:2018-03-21 17:29:05

标签: java drools jbpm bpm

我正在一个应用程序中工作,在该应用程序中,需要处理针对数百万历史交易的欺诈检测的交易。我正在使用Drools v6.4,StatefulKnowledgeSession和一个知识库(即一组规则文件或drl文件)。

出现问题的是我有200万个静态事实需要插入KieSession(流口水工作记忆)。这使处理速度非常慢,即每分钟只有50-60个事务处理。

我甚至尝试制作多个KieSessions以使其成为多线程,这肯定会加快应用程序的速度,但会增加内存占用,因为我必须在每个KieSession中插入这200万个事实。

因此,2个KieSession速度增加,如100个事务/分钟但具有2个KieSession性能几乎相同,即110个事务/分钟。我相信这是因为内存消耗。

有什么方法可以在多个KieSession中分享这些静态事实?或者按需获取这些事实,以便我可以通过提高性能来节省内存占用量?

0 个答案:

没有答案