規(guī)則引擎比較(僅個人觀點(diǎn)):Drools、RuleBook、Easy Rules巷蚪、OpenL Tablets、Jess
- 硬編碼
- 基礎(chǔ)功能易實(shí)現(xiàn)濒翻,擴(kuò)展功能需要自己開發(fā)屁柏,自由
- Drools
- 很強(qiáng)大的brms系統(tǒng)
- 生態(tài)也很不錯
- 使用復(fù)雜
- 參考:https://github.com/kiegroup/drools&&https://www.drools.org/
- AgendaFilter篩選規(guī)則參考:https://blog.csdn.net/a294634473/article/details/89456645
- RuleBook
- 基于java8 lambda 模式的規(guī)則引擎,使用上也是比較靈活的有送,
- 參考:https://github.com/deliveredtechnologies/rulebook
- Easy Rules
- 輕量級框架淌喻,學(xué)習(xí)成本低,傻瓜式的基于pojo的規(guī)則引擎
- 使用簡單雀摘,也比較強(qiáng)大裸删,
- 支持bdd模式的規(guī)則處理,對于java 系統(tǒng)的集成很友好
- 支持基于文件的規(guī)則加載
- 接口可擴(kuò)展阵赠,可自己添加基于db以及s3模式的處理涯塔,內(nèi)置的Listener也是很不錯的監(jiān)控點(diǎn),方便我們進(jìn)行規(guī)則審計(jì)存儲
- 幾個主要的類或接口:Rule,RulesEngine,RuleListener,Facts
- 幾個主要的注解:@Action,@Condition,@Fact,@Priority,@Rule
- 參考:https://github.com/j-easy/easy-rules
- OpenL Tablets
- 國內(nèi)資料不是很多清蚀,但是官方文檔還是很不錯的
- 參考:https://github.com/openl-tablets/openl-tablets
- Jess
- ILOG JRules:商用
- Visual Rules:商用
規(guī)則引擎 | Drools | RuleBook | Easy Rules |
---|---|---|---|
可執(zhí)行復(fù)雜事件處理的規(guī)則引擎 | 支持Lambda的輕量級規(guī)則引擎 | 簡單輕量級的規(guī)則引擎 | |
JBoss匕荸、Red Hat | 不詳 | 個人 | |
github | github | github | github |
star | 3.7k | 578 | 3.1k |
版本支持 | 7.55.0.Final 5天前 | 0.11 2018年12月5號 | 4.1.0 2020年12月7號 |
編程語言 | JAVA | JAVA | JAVA |
算法 | RETE算法 | - | - |
核心概念 | Fact | Given、Result | Facts |
rule | Rule | Rule | |
module | RuleBookRunner | RulesEngine | |
100條 | 419ms | 704ms | 426ms |
1000條 | 1932ms | 3137ms | 3459ms |
10000條 | 11641ms | 24014ms | 8172ms |
100000條 | 98140ms | 33722ms |