分散式微服務流程編排簡介 -Holisticon Consultants
微服務的流程編排將成為下一個要解決的大問題。在撰寫本文時,有幾種解決方案試圖在該領域競爭,主要是構建自己的(文字)領域特定語言來描述業務流程。在我看來,編排應該改為在BPMN 2.x中表達,因為它是為此目的而精心設計的,易於理解且成熟的語言。
類似於SOA的編排
SOA專注於圍繞業務功能構建的服務之間的遠端通訊。中央流程引擎同步地遠端呼叫分散式服務。整合在狀態處理過程引擎和無狀態服務之間執行。
此類同步系統有兩種不同的實現方式。
- Connector聯結器風格的整合模式:如果處理引擎使用所選擇的協議(通常HTTP)直接呼叫服務(S1,S2,S3)。
- RPC整合模式:如果引擎呼叫的本地代表這些裝置通過選擇的協議(HTTP,Java RMI的或任何其它同步協議)呼叫遠端服務(S1,S2,S3)。
在這兩種情況下,整合都需要引擎和服務同時線上。引擎可能知道服務的位置,或者使用登錄檔或代理(記住Webservice三角)來解決此問題,並且服務使用面向呼叫的實現來代表流程引擎執行工作。
訊息驅動編排
代替同步呼叫,中央引擎可以將訊息傳送到佇列或主題,而無狀態服務訂閱這些訊息。不需要同時提供引擎和服務。結果,服務使用面向訂閱的實現來代表流程引擎執行工作。
根據所使用的訊息傳遞抽象,有兩種實現型別:
- 訊息傳遞基礎結構可能是提供佇列(Q1,Q2,Q3)概念的中介軟體(例如,使用中央訊息傳遞匯流排)。引擎使用佇列將非同步訊息傳送到服務(S1,S2,S3)。
- 代替使用佇列,過程引擎可以將資訊釋出到預定義的主題(T1,T2,T3)。主題訂閱可以是流程引擎的一部分(也就是上面顯示的外部任務模式),也可以位於集中式訊息中介軟體上。
分散式編排
業務流程本身是分散式的。服務不會變為全狀態引擎和無狀態服務之間的分離,而是變為全狀態(並獲得自己的狀態處理方式,例如使用業務流程),並且在業務流程之間進行整合(例如,在流程引擎PE1,PE2,PE3中執行) )。
Camunda BPM的外部任務模式
外部任務模式是Camunda BPM在7.4版中引入的,它是打破工作流整體走向分散式工作流編排的最重要功能之一。最初,它旨在提供與面向呼叫相反的面向訂閱的服務任務實現。也就是說,如果引擎執行服務任務,則它不是在呼叫委託來呼叫(遠端)服務,而是建立外部任務記錄,並等待(遠端)外部任務工作者獲取並執行它。
點選標題了解詳細。
相關文章
- 流程編排、如此簡單-通用流程編排元件JDEasyFlow介紹元件
- springcloud微服務分散式雲架構簡介SpringGCCloud微服務分散式架構
- 微服務分散式跟蹤工具Brave簡介微服務分散式
- springcloud微服務分散式雲架構-SpringCloud簡介SpringGCCloud微服務分散式架構
- (一)springcloud微服務分散式雲架構-SpringCloud簡介SpringGCCloud微服務分散式架構
- spring cloud微服務分散式雲架構 - Spring Cloud簡介SpringCloud微服務分散式架構
- (一)spring cloud微服務分散式雲架構 - Spring Cloud簡介SpringCloud微服務分散式架構
- (一)spring cloud微服務分散式雲架構-Spring Cloud簡介SpringCloud微服務分散式架構
- Spring Cloud微服務分散式雲架構—整合專案簡介SpringCloud微服務分散式架構
- TXC分散式事務簡介分散式
- (三)springcloud微服務分散式雲架構-SpringCloud整合專案簡介SpringGCCloud微服務分散式架構
- (十六)spring cloud微服務分散式雲架構-整合專案簡介SpringCloud微服務分散式架構
- spring cloud微服務分散式雲架構 - Spring Cloud整合專案簡介SpringCloud微服務分散式架構
- Kubernetes – 容器編排簡介
- 分散式事務(七)之Seata簡介分散式
- lms框架分散式事務使用簡介框架分散式
- 分散式與微服務分散式微服務
- (三)spring cloud微服務分散式雲架構 - Spring Cloud整合專案簡介SpringCloud微服務分散式架構
- Java架構-(一)spring cloud微服務分散式雲架構 - Spring Cloud簡介Java架構SpringCloud微服務分散式
- MassTransit | 基於StateMachine實現Saga編排式分散式事務Mac分散式
- 部署超簡單的 Golong 分散式 WebSocket 微服務Go分散式Web微服務
- 分散式任務排程分散式
- silky微服務簡介微服務
- 分散式排程任務-ElasticJob分散式AST
- PHP 微服務之 [分散式事務]PHP微服務分散式
- PHP 微服務之【分散式事務】PHP微服務分散式
- 【須彌SUMERU】宜信分散式安全服務編排實踐分散式
- 微服務之分散式配置中心微服務分散式
- Java微服務下的分散式事務介紹及其解決方案2Java微服務分散式
- 微服務分散式事務元件 Seata(一)微服務分散式元件
- MassTransit 知多少 | 基於MassTransit Courier實現Saga 編排式分散式事務分散式
- LTS分散式任務排程部署分散式
- 分散式事務介紹分散式
- 低程式碼平臺--基於surging開發微服務編排流程引擎構思微服務
- silky微服務業務主機簡介微服務
- 分散式檔案上傳(微服務)分散式微服務
- 微服務架構 | 11. 分散式事務微服務架構分散式
- 01 . 容器編排簡介及Kubernetes核心概念