背景
我们公司由于业务的极具扩大,每天经过系统的金额也达到了20亿美金左右,这个时候对资金的管控就不能像以前那样分散在不同的系统,由不同的部门负责了。所以说,我们成立了风控部门,必须成立了专门的研发团队负责风控需求,要开始做风控了。我受命去调研如何做风控。发现风控平台一般都需要一个叫规则引擎的东西,那么我就去调研了规则引擎的一些现状。
目前公司内部规则执行现状
if(f1){
if(a||b||c||d)
}
if(f2){
}
if(a&b&d){
}
- 优点
当规则较少、变动不频繁时,开发效率非常高。
稳定性较佳:语法级别错误不会出现,由编译系统保证。
没有外部依赖,执行速度很快 - 缺点
规则迭代成本高:对规则的少量改动就需要走全流程(排期,开发、测试、部署)。
当存量规则较多时,可维护性差。
规则开发和维护门槛高:规则对业务分析人员不可见
没有规则效果分析,很难感知规则的效果
规则引擎简介
规则引擎由推理引擎发展而来,是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。接受数据输入,解释业务规则,并根据业务规则做出业务决策。–来自百度百科
这个定义我感觉比较清晰了,但是我们做的不一定要有推理模块。如果只是互联网化的简单规则执行,其实不需要推理,也能做到非常高的性能。
为啥要用规则引擎
- 规则的变更非常方便,从而实现业务规则的随需应便。
- 业务规则与系统代码分离,实现业