drools规则引擎_flink + drools 实时监控问题

最近写了一个基于drools的实时监控告警程序,思路非常简单,大体是flink读取kafka中的性能数据,然后数据和drools规则引擎交互进行告警判断,最后输出。

drools规则文件保存了监控规则,由于规则众多,大于有30多w条不同的监控规则。我根据hostip进行了分组,相同hostip的规则在同一个drl文件中。每次和drools交互时都需要创建kieSession,而kieSession是根据KieContainer创建的,KieContainer第一次创建比较耗时,我这边测的在规则文件较小的情况下第一次创建需要3s,后续的创建需要200ms左右。所以我按照hostip去创建KieContainer,这样只需要第一次创建比较耗时。

但是我的程序还是出现问题了。一次checkpoint需要4分钟,但是checkpoint时间并不长,大部分时间在对齐上。也出现了背压的情况,感觉KieContainer的创建还是个瓶颈。

和drools交互时,每条数据交互需要200ms。但是每秒有几百条数据甚至更多,那这样数据就一直处理不完了。

尝试优化:

维护一个cache,用于保存KieSession,当数据到达时先去cache中根据hostip获取KieSession,如果没有则新建。新的hostip比较多,一秒内还是有很多需要新创建的KieSession。

但是感觉效果并不明显,还是出现背压。

感觉flink + drools不太合适啊,除非KieSession能够共用。

感觉drools还有一个问题,就是规则维护比较麻烦,如果规则以规则文件的方式存在,当规则文件数超多时就很头疼了,成千上万个文件

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值