企業集成模式 (EIP) 教程

Enterprise Integration Patterns  (EIP)是 Gregor Hohpe 和 Bobby Woolf 的一本書,以模式語言的形式描述了 65 種用於使用 企業應用程序集成 和麵向消息的中間件的模式。它們幫助我們使用標準化的方式來集成應用程序,而無需在每次遇到問題時都重新發明輪子。

企業集成模式的目標是創建一種通用語言和一組工作流操作,以便將它們組合在一起以創建成熟、實用的業務流程。它提供了一個包含 65 種模式的目錄,可幫助您為您的企業設計有效的消息傳遞解決方案。

本書區分了四種頂級集成替代方案:

  1. 文件傳輸
  2. 共享數據庫
  3. 遠程過程調用
  4. 消息傳遞

引入了以下集成類型:

  • 信息門戶
  • 數據複製
  • 共享業務功能
  • 面向服務的架構
  • 分佈式業務流程
  • 企業對企業整合
  • 緊耦合交互與松耦合交互

使用免費在線工具繪製企業集成模式圖

Visual Paradigm 的免費 企業集成模式工具 (EIP 圖表工具)具有一組編輯功能,使繪圖更簡單、更快捷,例如拖放和對齊指南,使編輯變得流暢和直觀。EIP 圖表工具還附帶一組 EIP 符號和形狀,可讓您創建不同類型的 EIP 圖表。

您可以輕鬆地開發您的模式,然後通過 PNG、JPG、GIF、SVG 和 PDF 等格式輸出和共享它們。

通過示例和模板學習 EIP

您可以從空白圖表或 EIP 模板開始。以下是一些模板。單擊“編輯”按鈕立即開始編輯。它是免費的,無需註冊。

企業集成模式示例:智能代理

即時在線編輯

企業集成模式示例:組合消息傳遞 MSMQ

在線編輯上述示例

想採用其他一些企業集成模式嗎?

 來自 Visual Paradigm的EIP 在線編輯存儲庫

生態工業園區實施框架

Apache Camel 支持 Gregor Hohpe 和 Bobby Woolf 的優秀著作中的大多數 企業集成模式 。基於企業集成模式 (EIP) 通過應用開箱即用的最佳實踐來幫助您解決集成問題。Camel 支持 Gregor Hohpe 和 Bobby Woolf 的優秀著作中的大多數企業集成模式,以及來自 微服務架構的更新集成模式。

如果您是 Camel 的新手,您可能想在嘗試實現這些模式之前嘗試用戶指南中的 入門 。

消息系統

留言頻道

一個應用程序如何使用消息傳遞與另一個應用程序通信?

信息

通過消息通道連接的兩個應用程序如何交換一條信息?

管道和過濾器

我們如何在保持獨立性和靈活性的同時對消息進行複雜的處理?

消息路由器

如何解耦各個處理步驟,以便根據一組條件將消息傳遞給不同的過濾器?

消息翻譯器

使用不同數據格式的系統如何使用消息傳遞相互通信?

消息端點

應用程序如何連接到消息傳遞通道以發送和接收消息?

消息渠道

點對點通道

呼叫者如何確定只有一位接收者會收到文件或執行呼叫?

發布訂閱頻道

發送者如何向所有感興趣的接收者廣播事件?

死信頻道

消息傳遞系統將如何處理它無法傳遞的消息?

保證交貨

即使消息系統發生故障,發件人如何確保消息將被傳遞?

通道適配器

如何將應用程序連接到消息傳遞系統以便它可以發送和接收消息?

消息橋

如何連接多個消息傳遞系統,以便在一個消息系統上可用的消息也可以在其他消息系統上可用?

消息總線

什麼樣的架構能夠使不同的應用程序一起工作,但以一種解耦的方式,以便可以輕鬆地添加或刪除應用程序而不影響其他應用程序?

變更數據捕獲

通過捕獲對數據庫所做的更改來同步數據,並將這些更改應用到另一個系統。

消息構造

活動訊息

如何使用消息傳遞將事件從一個應用程序傳輸到另一個應用程序?

請求回复

當應用程序發送消息時,它如何獲得接收者的響應?

退貨地址

回复者如何知道將回復發送到哪裡?

相關標識符

收到回复的請求者如何知道這是針對哪個請求的回复?

消息過期

發件人如何指示何時應將消息視為陳舊並因此不應處理?

消息路由

基於內容的路由器

我們如何處理單個邏輯功能(例如,庫存檢查)的實現分佈在多個物理系統中的情況?

消息過濾器

組件如何避免接收到無趣的消息?

動態路由器

如何在保持效率的同時避免路由器對所有可能的目的地的依賴?

收件人名單

我們如何將消息路由到(靜態或動態)指定收件人列表?

分路器

如果消息包含多個元素,我們如何處理它,每個元素都可能需要以不同的方式處理?

聚合器

我們如何組合單個但相關消息的結果,以便將它們作為一個整體進行處理?

重測序儀

我們如何才能將相關但無序的消息流恢復到正確的順序?

組合消息處理器

在處理由多個元素組成的消息時,如何維護整個消息流,每個元素可能需要不同的處理?

分散-聚集

當一條消息需要發送給多個收件人時,您如何維護整個消息流,每個收件人都可能會發送回复?

路由單

當步驟順序在設計時未知並且可能因每條消息而異時,我們如何通過一系列處理步驟連續路由消息?

流程管理器

當所需的步驟在設計時可能不知道並且可能不是連續的時,我們如何通過多個處理步驟路由消息?

消息代理

如何將消息的目的地與發送者分離並保持對消息流的集中控制?

節流器

如何限制消息以確保特定端點不會超載,或者我們不會超過某些外部服務商定的 SLA?

採樣

如何在給定時間內從多條消息中抽取一條消息以避免下游路由不過載?

延遲器

如何延遲發送消息?

負載均衡器

如何在多個端點之間平衡負載?

斷路器

如果服務中斷,我如何停止調用外部服務?

服務電話

如何在從某種服務註冊表中查找服務的分佈式系統中調用遠程服務?

佐賀

如何在 Camel 路線中定義一系列相關操作,這些操作應該成功完成(全部)或不執行/補償?

組播

如何將消息同時路由到多個端點?

環形

如何在循環中重複處理消息?

消息轉換

內容豐富器

如果消息發起者沒有可用的所有必需數據項,我們如何與另一個系統通信?

內容過濾器

當您只對少數數據項感興趣時,如何簡化對大消息的處理?

索賠檢查

我們如何在不犧牲信息內容的情況下減少跨系統發送的消息的數據量?

歸一化器

您如何處理語義上等效但以不同格式到達的消息?

種類

如何對郵件正文進行排序?

腳本

如何執行可能不會更改消息的腳本?

證實

如何驗證消息?

消息傳遞端點

消息映射器

您如何在域對象和消息傳遞基礎架構之間移動數據,同時保持兩者相互獨立?

事件驅動消費者

應用程序如何在消息可用時自動使用它們?

輪詢消費者

當應用程序準備就緒時,應用程序如何使用消息?

競爭消費者

消息傳遞客戶端如何同時處理多個消息?

消息調度程序

單個通道上的多個消費者如何協調他們的消息處理?

選擇性消費者

消息消費者如何選擇它希望接收的消息?

持久訂戶

訂閱者如何在不收聽消息時避免丟失消息?

冪等消費者

消息接收者如何處理重複消息?

交易客戶端

客戶端如何控制其與消息傳遞系統的事務?

消息網關

您如何封裝從應用程序的其餘部分對消息傳遞系統的訪問?

服務激活器

應用程序如何設計一項服務,以便通過各種消息傳遞技術和非消息傳遞技術調用?

系統管理

控制總線

我們如何有效地管理分佈在多個平台和廣泛地理區域的消息傳遞系統?

車輛改道

如何通過中間步驟路由消息以執行驗證、測試或調試功能?

絲錐

您如何檢查在點對點通道上傳輸的消息?

消息歷史

我們如何有效地分析和調試松耦合系統中的消息流?

日誌

如何記錄處理消息?

Steps 將一組 EIP 組合成一個組合邏輯單元,用於度量和監控。

Leave a Reply

發佈留言必須填寫的電子郵件地址不會公開。