文章目錄
一、寫在前面
就不做過多介紹了。
官網:https://liteflow.cc/
二、使用
1、Springboot集成
(1)引包
<dependency><groupId>com.yomahub</groupId><artifactId>liteflow-spring-boot-starter</artifactId><version>2.15.0</version>
</dependency>
引入的jar包還不少呢:
(2)按照官網的demo來一套,發現確實挺好用:
文檔:https://liteflow.cc/pages/9bf6be/#%E4%BE%9D%E8%B5%96
2、組件
(1)繼承式組件的作用就是,提供了幾個內置的,為流程編排提供了執行器、條件器、循環器等等。
文檔:https://liteflow.cc/pages/8486fb/
(2)聲明式組件,更靈活。感覺方法級別式聲明
更適合日常開發。
文檔:https://liteflow.cc/pages/46f0fa/
3、表達式
文檔:https://liteflow.cc/pages/16eca9/
表達式,就是進行流程編排了。
4、上下文
文檔:https://liteflow.cc/pages/74b4bf/
在執行器執行流程時會分配數據上下文實例給這個請求。不同請求的數據上下文實例是完全隔離的。里面存放著此請求所有的用戶數據。不同的組件之間是不傳遞參數的,所有的數據交互都是通過這個數據上下文來實現
的。
使用的時候,最好是將上下文進行自定義:
OrderContext orderContext = new OrderContext();
orderContext.setOrderNo("SO11223344");
// 上下文已經初始化好參數了,就可以省略流程入參
LiteflowResponse response = flowExecutor.execute2Resp("chain1", null, orderContext);
上下支持將整個類
取出進行處理,也可以單獨對類的字段進行處理。
5、執行器
文檔:https://liteflow.cc/pages/90b2a5/
執行器是一個流程的觸發點,你可以在代碼的任意地方用執行器進行執行流程
。
需要注意執行器的出參、入參、上下文
。
流程多的話(幾萬+),需要設置保活策略。
6、腳本組件
需要經常更新+熱部署的
代碼部分,可以考慮腳本組件。
7、規則配置源
文檔:https://liteflow.cc/pages/51ddd5/#%E8%A7%84%E5%88%99%E6%96%87%E4%BB%B6
可以將規則配置在文件、數據庫、配置中心等等很多地方,也支持熱更新。
8、元數據管理
文檔:https://liteflow.cc/pages/7cb165/
在LiteFlow框架中,最重要的兩個概念就是規則以及組件。
框架提供了一個元數據管理器LiteflowMetaOperator
用來管理這兩大元素。
LiteFlow原生支持的zookeeper,etcd,nacos,apollo等
插件,不需要你做任何事,只要規則更改之后,會自動熱平滑刷新。
本地文件也支持熱更新,需要配置本地文件監聽。
sql,redis
也會熱更新,因為是輪訓,所以會有延時。
9、異步中的線程池
文檔:https://liteflow.cc/pages/3a3b69/
從2.13.0開始,框架中的線程池模型設計和之前的版本有較大的差異性,所以此章只適用于2.13.0之后的版本。
線程池分為流程級別的、組件異步級別
的。
組件異步還分表達式級別、Chain級別。
JDK為21及以上時,默認使用虛擬線程。
10、動態構造
文檔:https://liteflow.cc/pages/9aa85a/
Node、表達式、Chain都可以動態構造。
11、決策路由
文檔:https://liteflow.cc/pages/ec1ac4/
感覺是沒啥大用,還挺復雜的。
12、生命周期
文檔:https://liteflow.cc/pages/ef098d/#%E8%A7%84%E5%88%99%E6%9E%84%E9%80%A0%E5%89%8D%E5%90%8E
13、其他
三、總結
業務復雜可以考慮引入,但是大部分項目應該還是不必須的。
LiteFlow主要還是以流程編排
為主。