drools研究后记

在实际工作中,有关于达标判断的业务逻辑

就是谁谁谁 消费满了多少钱,就返多少钱的优惠券


声明:不是drools不好,只是在我遇到的场景下,不合适,不够好

在使用drools的时候发现有如下问题:

1、效率低。这是最严重的问题,实际业务环境,用户数量要几十万,还有很多业务相关的数据,他们要组合判断。实际情况是,插入working memory的fact数量超过万级,程序就开始hang住,gc日志打开后发现,系统不停的gc,用内存查看工具,发现drools生成了大量的内部对象,甚至有内存泄露的趋势。


这里猜测,应该是drools为了实现通用性,会把所有的自定义的实体,转化为它内部的节点,然后还有相关的一大堆附属,但是做得不够好,所以导致了上面的现象

这简直就是没法用了,时间有限,花大把时间把他源码搞清楚,再看看有没有留出钩子,或者重写源码,有这时间,还不如我自己实现达标判断了逻辑了呢,这样效率又能得到保证,运维成本还不高,毕竟关系到用户的钱,不能给算错了,遇到问题需要马上定位问题,万一遇到了一个drools的内部问题,说不定要多耽误事呢

实际自己实现的达标判断过程,在万级以内(就是在drools能承受的范围内),我自己优化后的算法,要比drools实现快10倍


2、不方便。具体体现在数据insert的过程,为了能够满足drl文件中所描述的数据结构以及他们的关系,必须提前构造相关的数据结构,很费力。而且这部分逻辑,写不好的话,也会写成一坨,虽然drl鼓吹的更易读,但是带来的副作用就是,外面的工作量很大

另外就是数据装载,一般都是从数据库读取数据,这里也没有一些api对这里做支持,它的api更多是面向内存对象的,并没有考虑到这点


3、社区支持。这个是我要吐槽的

说是社区活跃文档多啥啥啥的,太tm扯淡了,有个在线聊天的答疑的,进去喊话,从来没人吱声

文档写的那叫一个烂,就是堆砌,根本没考虑到读者的学习路径

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值