Apache Camel - 概述



Camel 是一個黑盒,它從某個端點接收訊息並將其傳送到另一個端點。在黑盒內部,訊息可能會被處理或簡單地重定向。

Camel Message Box

那麼為什麼要為此構建一個框架呢?在實際情況中,如引言案例研究中所見,可能存在許多傳送方和許多接收方,每個傳送方和接收方都遵循自己的協議,例如 ftp、http 和 jms。系統可能需要許多複雜的規則,例如來自發送方 A 的訊息應僅傳遞給 B 和 C。在某些情況下,您可能需要將訊息轉換為接收方期望的另一種格式。這種轉換可能取決於訊息內容的某些條件。因此,從本質上講,您可能需要在協議之間進行轉換、將元件粘合在一起、定義路由規則並根據訊息內容提供過濾。下圖說明了這一點 -

Camel Framework

為了滿足上述要求併為許多此類情況設計合適的軟體架構,Gregor Hohpe 和 Bobby Woolf 在 2003 年記錄了企業整合模式(EIP)。Apache Camel 提供了這些模式的實現,本教程的目的是教您如何在引言中描述的類似情況下使用 Camel。

Apache Camel 是一個開源框架。它是一個面向訊息的中介軟體,提供基於規則的路由和中介引擎。您可以定義規則,例如,如果它是“牛奶”訂單,則將其重定向到牛奶供應商;如果它是“油”訂單,則將其重定向到油供應商,依此類推。使用 Camel,您將能夠實現這些規則並在熟悉的 Java 程式碼中執行路由。這意味著您可以使用您熟悉的 Java IDE 在型別安全的環境中定義這些規則。我們不需要使用 XML 配置檔案,這些檔案通常往往很龐大。Camel 雖然透過 Spring 框架支援 XML 配置,但如果您更喜歡使用 XML 來配置規則。如果您是 Scala 愛好者,您甚至可以使用 Blueprint XML 配置檔案,甚至可以使用 Scala DSL。這也意味著您可以使用您喜歡的 Java、Scala IDE 或甚至一個簡單的 XML 編輯器來配置規則。

此引擎的輸入可以是逗號分隔的文字檔案、POJO(普通舊 Java 物件)、XML 或 Camel 支援的其他幾種格式中的任何一種。類似地,引擎的輸出可以重定向到檔案、訊息佇列,甚至您的監視器螢幕,以便您檢視傳送給各個供應商的訂單。這些稱為端點,Camel 支援訊息端點 EIP 模式。Camel 端點將在後面的“端點”章節中進行討論。

Camel 通常與Apache ServiceMixApache ActiveMQApache CXF 一起使用來實現面向服務的架構。

廣告

© . All rights reserved.