LiteFlow:國產流程編排引擎體驗

文章目錄

  • 一、寫在前面
  • 二、使用
    • 1、Springboot集成
    • 2、組件
    • 3、表達式
    • 4、上下文
    • 5、執行器
    • 6、腳本組件
    • 7、規則配置源
    • 8、元數據管理
    • 9、異步中的線程池
    • 10、動態構造
    • 11、決策路由
    • 12、生命周期
    • 13、其他
  • 三、總結

一、寫在前面

就不做過多介紹了。
官網: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主要還是以流程編排為主。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/97861.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/97861.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/97861.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux學習:生產者消費者模型

目錄1. 生產者消費者模型的相關概念1.1 什么是生產者消費者模型1.2 生產者消費者模型的優勢作用2. 多線程簡單實現生產者消費者模型2.1 設計方案2.2 代碼實現2.2.1 線程類2.2.2 BlockQueue類2.2.3 任務類2.2.4 主干代碼1. 生產者消費者模型的相關概念 1.1 什么是生產者消費者模…

《深度學習》卷積神經網絡:數據增強與保存最優模型解析及實現

目錄 一、數據增強 1. 核心概念 2. 核心目的 3. 常用方法 4. 實現示例&#xff08;基于 PyTorch&#xff09; 5. 自定義數據集加載 二、保存最優模型 1. 核心概念 2. 實現步驟 &#xff08;1&#xff09;定義 CNN 模型 &#xff08;2&#xff09;定義訓練與測試函數…

tcpdump用法

tcpdump用法tcpdump一、什么是tcpdump二、命令格式與參數三、參數列表四、過濾規則組合邏輯運算符過濾器關鍵字理解 Flag 標識符五、常用例子tcpdump 一、什么是tcpdump 二、命令格式與參數 option 可選參數&#xff1a;將在后邊一一解釋。 proto 類過濾器&#xff1a;根據協…

平衡車 - 電機調速

&#x1f308;個人主頁&#xff1a;羽晨同學 &#x1f4ab;個人格言:“成為自己未來的主人~” 在我們的這篇文章當中&#xff0c;我們主要想要實現的功能的是電機調速功能。在我們的這篇文章中&#xff0c;主要實現的是開環的功能&#xff0c;而非閉環&#xff0c;也就是不加…

從利潤率看價值:哪些公司值得長期持有?

&#x1f4a1; 為什么盯緊利潤率&#xff1f; 投資者常常盯著營收增長&#xff0c;卻忽略了一個更關鍵的指標——利潤率。 收入可以靠規模“堆”出來&#xff0c;但利潤率卻是企業護城河的真實體現。心理學研究表明&#xff1a;當一個產品或服務被消費者認定為“不可替代”&a…

小迪web自用筆記25

傳統文件上傳&#xff1a;上傳至服務器本身硬盤。云存儲&#xff1a;借助云存儲oss對象存儲&#xff08;只能被訪問&#xff0c;不可解析&#xff09;Oss云存儲Access key與Access ID&#xff1a;有了這兩個東西之后就可以操作云存儲&#xff0c;可以向里面發數據了。這玩意兒泄…

分發餅干——很好的解釋模板

好的&#xff0c;孩子&#xff0c;我們來玩一個“喂餅干”的游戲。 0. 問題的本質是什么&#xff1f; 想象一下&#xff0c;你就是個超棒的家長&#xff0c;手里有幾塊大小不一的餅干&#xff0c;而面前有幾個餓著肚子的小朋友。每個小朋友都有一個最小的“胃口”值&#xff0c…

場景題:如果一個大型項目,某一個時間所有的CPU的已經被占用了,導致服務不可用,我們開發人員應該如何使服務器盡快恢復正常

問&#xff1a;如果一個大型項目,某一個時間所有的CPU的 已經被占用了&#xff0c;導致服務不可用&#xff0c;我們開發人員 應該如何使服務器盡快恢復正常答&#xff1a;應對CPU 100%導致服務不可用的緊急恢復流程面試官&#xff0c;如果遇到這種情況&#xff0c;我會立即按照…

Docker 安裝 RAGFlow保姆教程

前提條件 Ubuntu 服務器(20.04 或 22.04 LTS 推薦) 已安裝 Docker 和 Docker Compose 如果尚未安裝,請先運行以下命令:# 安裝 Docker curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh # 將當前用戶加入 docker 組,避免每次都要 sudo sudo user…

為什么實際工程里 C++ 部署深度學習模型更常見?為什么大家更愛用 TensorRT?

很多人剛接觸深度學習模型部署的時候&#xff0c;都會習慣用 Python&#xff0c;因為訓練的時候就是 PyTorch、TensorFlow 啊&#xff0c;寫起來方便。但一到 實際工程&#xff0c;特別是工業設備、醫療影像、上位機系統這種場景&#xff0c;你會發現大多數人都轉向了 C 部署。…

深入理解 Java 集合框架:底層原理與實戰應用

在日常開發中&#xff0c;集合是 Java 中使用頻率最高的工具之一。從最常見的 ArrayList、HashMap 到更復雜的并發集合&#xff0c;幾乎每一個 Java 程序員都離不開集合框架。集合框架不僅提供了豐富的數據結構實現&#xff0c;還封裝了底層復雜的邏輯&#xff0c;讓開發者能夠…

爬取m3u8視頻完整教程

爬取步驟&#xff1a;1.先找到網頁源代碼2.從網頁源代碼中拿到m3u83.下載m3u84.讀取m3u8文件&#xff0c;下載視頻5.合并視頻首先我們來爬取一個星辰影院的電影&#xff1a;下面我以這個為例&#xff1a;我們需要在源代碼中找到m3u8這個url&#xff1a;緊接著我們利用下面的方法…

Python爬蟲實戰: 基于Scrapy的Amazon跨境電商選品數據爬蟲方案

概述與設計思路 利用Python的Scrapy框架進行大規模頁面抓取和結構化數據提取,配合aiohttp實現高并發請求,從而高效獲取Amazon平臺上的商品列表、詳情、評論等公開信息。通過對這些數據進行清洗與分析,可以識別出有潛力的商品,評估市場競爭程度,并跟蹤競爭對手的動態,為跨…

穩定版IM即時通訊 仿默往APP即時通訊im源碼聊天社交源碼支持二開原生開發獨立部署 含搭建教程

內容目錄一、詳細介紹二、效果展示1.部分代碼2.效果圖展示三、學習資料下載一、詳細介紹 技術開發語言&#xff1a; 后臺管理端&#xff1a;Java GO Mysql數據庫 安卓端&#xff1a;Java iOS端&#xff1a;ob PC端&#xff1a;c 功能簡單介紹&#xff1a; 單聊&#xff…

封裝一個redis獲取并解析數據的工具類

redis獲取并解析數據工具類實現代碼使用示例實現代碼 import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.TypeReference; import lom…

23種設計模式——策略模式 (Strategy Pattern)?詳解

?作者簡介&#xff1a;大家好&#xff0c;我是 Meteors., 向往著更加簡潔高效的代碼寫法與編程方式&#xff0c;持續分享Java技術內容。 &#x1f34e;個人主頁&#xff1a;Meteors.的博客 &#x1f49e;當前專欄&#xff1a;設計模式 ?特色專欄&#xff1a;知識分享 &#x…

CI(持續集成)、CD(持續交付/部署)、CT(持續測試)、CICD、CICT

目錄 **CI、CD、CT 詳解與關系** **1. CI(Continuous Integration,持續集成)** **2. CD(Continuous Delivery/Deployment,持續交付/部署)** **持續交付(Continuous Delivery)** **持續部署(Continuous Deployment)** **3. CT(Continuous Testing,持續測試)** **4.…

【音視頻】WebRTC ICE 模塊深度剖析

原文鏈接&#xff1a; https://mp.weixin.qq.com/s?__bizMzIzMjY3MjYyOA&mid2247498075&idx2&sn6021a2f60b1e7c71ce4d7af6df0b9b89&chksme893e540dfe46c56323322e780d41aec1f851925cfce8b76b3f4d5cfddaa9c7cbb03a7ae4c25&scene178&cur_album_id314699…

linux0.12 head.s代碼解析

重新設置IDT和GDT&#xff0c;為256個中斷門設置默認的中斷處理函數檢查A20地址線是否啟用設置數學協處理器將main函數相關的參數壓棧設置分頁機制&#xff0c;將頁表映射到0~16MB的物理內存上返回main函數執行 源碼詳細注釋如下: /** linux/boot/head.s** (C) 1991 Linus T…

Maven動態控制版本號秘籍:高效發包部署,版本管理不再頭疼!

作者&#xff1a;唐叔在學習 專欄&#xff1a;唐叔的Java實踐 關鍵詞&#xff1a;Maven版本控制、versions插件、動態版本號、持續集成、自動化部署、Java項目管理 摘要&#xff1a;本文介紹如何使用Maven Versions插件動態控制項目版本號和依賴組件版本號&#xff0c;實現無需…