企業整合模式
企業整合模式
Apache ActiveMQ Classic 5.0 及更新版本完全支援 企業整合模式 (出自 Gregor Hohpe 和 Bobby Woolf 的精采著作),透過 Apache Camel 函式庫。
您可以輕鬆地將任何支援的企業整合模式新增到 ActiveMQ Classic 中 (無論是在 JMS 用戶端或 Broker 程序中),以支援智慧路由、轉換和許多其他強大的模式。您當然也可以直接將 Camel 函式庫嵌入到您的應用程式中,例如透過 Spring。
這也表示您可以將所有的 Camel 元件乾淨地整合到 ActiveMQ Classic 中,因此您可以輕鬆地與 CXF、檔案、JBI、JPA、Mail、MINA、Quartz、XMPP 和 許多其他協定和傳輸方式整合!
在 ActiveMQ Classic Broker 中使用 EIP
Broker 的 activemq.xml
檔案已預先配置為支援 Camel;您只需自訂路由規則。
使用 Java 程式碼撰寫 EIP 規則
若要使用 Java 程式碼撰寫 EIP 路由規則,只需將您的類別放入類別路徑中 (例如在 activemq/lib/myroutes/foo.jar 中)。然後,為了讓 Camel 找到您的路由,您需要編輯 activemq.xml,使 **packages** 屬性指向要搜尋的套件名稱 (或父套件名稱)。
例如,如果您的所有路由都在 org.acme.cheese
套件中,例如 org.acme.cheese.whatnot.MyRouter
,則您可以將 XML 編輯為…
<camelContext xmlns="https://activemq.dev.org.tw/camel/schema/spring">
<package>org.acme.cheese</package>
</camelContext>
使用 XML 撰寫 EIP 規則
使用 XML 更簡單,因為您可以使用 Camel 的 Spring XML 格式,將任何路由規則嵌入到 <camelContext>
元素中。請注意,XML 比 Java DSL 更冗長,但部署起來稍微簡單一些。例如,一個簡單的路由...
<camelContext xmlns="https://activemq.dev.org.tw/camel/schema/spring">
<route>
<from uri="activemq:com.acme.MyQueue"/>
<to uri="activemq:com.acme.SomeOtherQueue"/>
</route>
</camelContext>
在 JMS 用戶端中使用 EIP
您可以從您的 JMS 用戶端直接使用 Camel 端點,根據您想要使用的 JMS API,使用以下其中一個 JMS 目的地
然後,您可以在傳送或接收訊息時,像任何其他 JMS 目的地一樣使用此目的地!這表示您可以僅透過變更 Destination 物件,從您的 JMS 程式碼中使用大量 Camel 元件!