一、什么是规则引擎
什么是规则引擎,规则引擎到底长啥样?一般来说主要分为下面三类:
- 低配版:没有配置界面,靠业务人员编写引擎规则DSL,一般存储在数据库或者文件中。这种规则引擎没有彻底解放业务人员和开发人员的耦合,但是加快了业务代码的上线速度,以及很容易就能进行规则变更。
- 进阶版:一般是某种特定的系统,针对这种系统需要设置一些有针对性的页面,需要判断某些参数是否符合某些条件,然后返回固定的值即可。
- 完全版:在进阶版中,规则引擎只是其中的一个部件,一般这种都很难复用于其他场景。但是一个完全版的规则引擎,追求的是超高的通用性,它提供了多种规则引擎的表达:比如决策集,决策表,决策树等,可以适用于很多需要使用规则引擎的地方。
二、有哪些规则引擎
在各大社区中,开源的规则引擎还是比较多的,但整体上,大分类主要为下面三类:
- 通过界面配置的成熟规则引擎:这种规则引擎相对来说就比较重,但是因为功能全,也有部分业务需要选择这个,比较出名的有:drools,urule。
- 基于jvm脚本语言:这种其实不是一个成熟的规则引擎,他应该算是规则引擎中的核心技术,有很多公司都会基于一些jvm的脚本语言,去自己开发一个轻量级的规则引擎,这里比较出名的有:groovy,aviat