drools规则引擎对接风控系统简单实现Demo

从五一放假回来,研究了三天的drools的原理,由于网上的视频基本都是收费,并且上班如果看视频只能是无声。所以研究的主要渠道就是通过博客专栏,当然也找了一些视频。视频都是加密的,日后等解密后分享出来。写这篇博客的目的是总结一下整个学习过程,及日后深入研究需要考虑的点。三天时间肯定只是皮毛,只能做一个简单的能运行的demo。

主要阅读的博客有一下这些,有一些是连载,非常感谢博主们的分享。

https://www.cnblogs.com/atomicbomb/p/7251814.html

https://jinfei21.github.io/2018/09/29/%E5%9F%BA%E4%BA%8E%E8%A7%84%E5%88%99%E7%9A%84%E9%A3%8E%E6%8E%A

https://ruleengine.iteye.com/blog/2019278

https://www.cnblogs.com/yuebintse/p/5767996.html

https://www.cnblogs.com/qiyexue/p/7822464.html

https://blog.csdn.net/sqzhao/article/details/70739140

https://hxrs.iteye.com/blog/985876

https://blog.csdn.net/RhyLK/article/details/78264959

纸上得来终觉浅,绝知此事要躬行 。今天花了两个半小时结合着风控系统简单的实现了一个Demo。

首先在项目的META-INF目录下添加一个kmodule.xml文件



   
       
   

简单解释一下:kbase 的packages属性值是规则文件的路径

 ksession的name属性是规则文件的名称,不用加后缀

书写drl文件时一定要注意语法。上面的博客中有详细介绍。

添加jar包

 

创建一个普通的javaBean

 

在引用时需要向规则引擎传入一个对象,准确的应该是Fact对象,但是也可以java对象。

执行。

在调试的过程中发现几个值得深入思考的问题:

1、

KieContainer kc = KieServices.Factory.get().getKieClasspathContainer();
            KieSession ksession = kc.newKieSession("pay_rule");

在第一次执行这两条语句的时候很明显感觉到很慢,后面好很多,如何解决第一次响应时间过慢的问题。

2、drools的文件应用有两种方式第一种是我这样,第二种是如何实现的。

3、如何设定规则。个人觉得最难的一点。

4、设置优先级,如何做到先后执行值累加的效果。

你可能感兴趣的:(java)