在公司接触到Drools,感觉可以为自己手头的工作所用,便开始着手Drools6规则引擎的研究之中,采用最新的6.3版本,网上最新的额资源比较少,看了一些英文介绍,前后忙了大概小半年,觉得有必要总结一下。
研究背景
对于一些充斥着大量的if-else逻辑的后台逻辑代码,其业务会随着逻辑规则复杂度越来越高,代码可读性和维护性越来越差,而且随着产品设计的定制化需求提升,发布新的理赔规则便需要重启整个业务线,为了解决这个问题,引入Drools6规则引擎技术,不仅可通过DRL文件等方式大大简化逻辑语句,更可通过Drools6的KIE机制,配合Maven实现规则jar包的热部署。
Drools5.x与Drools6.x的区别
规则收集加载部分
由Drools5的本地工程引入drl文件到Drools6的引入规则jar,通过kmodule.xml 统一管理导入。
规则更新部分
由于采用了
KIE机制,Drools6可通过Maven实现规则jar包的热部署。
基于Drools6的规则引擎搭建
相关业务线将规则逻辑隔离出来,新建drools工程编drl文件,算法class文件,封装打包成规则jar包,上传至maven私服,Dools规则引擎会定时轮询更新私服内的规则包,根据版本号更新至最新版本的规则jar包。Dools规则引擎则对规则文件进行解析,并对外提供规则调用接口,在相应业务调用时,输入Factor参数,返回规则执行结果。