1. 程式人生 > >Drools6規則引擎探究與在業務中的實踐

Drools6規則引擎探究與在業務中的實踐

在公司接觸到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引數,返回規則執行結果。