camel java_与Java EE和Camel的轻量级集成
camel java
Enterprise Java具有不同的風格和觀點。 從簡單的平臺技術(眾所周知的Java EE)開始,到不同的框架和集成方面,最后是涉及以數據為中心的用戶界面或特定可視化效果的用例。 Java EE本身無法解決的最突出的問題是“集成”。 有許多來自知名供應商的產品,它們可以解決各種集成問題并承諾提供完整的解決方案。 作為開發(fā)人員,您不時需要的只是一個可行的解決方案。 對于系統(tǒng)集成,這是Java EE開發(fā)人員的最終“入門資源”。
一點整合理論
集成挑戰(zhàn)并不是什么新鮮事物。 由于存在不同類型的系統(tǒng),并且需要將其數據組合到另一個系統(tǒng)中,因此這一直是中心主題。 Gregor Hohpe和Bobby Woolf開始收集用于解決客戶集成問題的一組基本模式。 這些企業(yè)集成模式 (EIP)可被視為集成的圣經。 它試圖通過定義65種集成模式來找到有關異步消息傳遞體系結構的通用詞匯和知識體系。 Forrester將其稱為“ EAI的核心語言”。
什么是Apache Camel?
Apache Camel為您提供了EIP的接口,基礎對象,通常需要的實現(xiàn),調試工具,配置系統(tǒng)以及許多其他幫助器,當您要實現(xiàn)遵循EIP的解決方案時,將為您節(jié)省大量時間。 這是一個完整的生產就緒框架。 但這并不能止于最初定義的65個模式 。 它擴展了150多個現(xiàn)成的組件 ,可以解決端點或系統(tǒng)或技術集成方面的各種問題。 在較高的層次上,Camel由CamelContext組成,其中包含Component實例的集合。 組件本質上是Endpoint實例的工廠。 您可以在Java代碼或IoC容器(例如Spring,Guice或CDI)中顯式配置Component實例,也可以使用URI自動發(fā)現(xiàn)它們。
Java EE開發(fā)人員為什么要關心?
企業(yè)項目要求我們這樣做。 處理各種系統(tǒng)集成一直是一個具有挑戰(zhàn)性的話題。 您可以通過使用消息傳遞系統(tǒng)選擇復雜的道路,并將其連接到您的應用程序中,然后自己實現(xiàn)所有功能,也可以通過使用不同的產品走上繁重的道路。 從那時起,我一直是更實用的解決方案的粉絲。 這就是Camel的實際含義:相對輕巧,易于引導,并附帶大量預構建的集成組件,使開發(fā)人員可以專注于解決其背后的業(yè)務需求。 無需學習新的API或工具。 Camel帶有基于Java的Fluent API , Spring或Blueprint XML配置文件 ,甚至還有Scala DSL 。 因此,無論您從哪一個基地開始,您總會發(fā)現(xiàn)一些您已經知道的東西。
如何開始?
我懂了嗎 想試試看? 這也很容易。 根據您使用的框架和平臺,您有不同的方式。 回顧帖子標題,本文將重點介紹Java EE。
因此,您可以做的第一件事就是自行引導駱駝。 您需要的只是核心駱駝依賴關系和cdi-camel依賴關系。 設置一個簡單的Java EE 7 maven項目并添加這兩個項目已足夠。
<dependency><groupId>org.apache.camel</groupId><artifactId>camel-core</artifactId><version>${camel.version}</version> </dependency> <dependency><groupId>org.apache.camel</groupId><artifactId>camel-cdi</artifactId><version>${camel.version}</version> </dependency>接下來需要做的是找到一個注入第一個CamelContext的地方。
@InjectCdiCamelContext context;注入所有內容后,您可以開始向其中添加路由。 在GitHub上的CamelEE7項目中可以找到更完整的示例。 只需叉子就可以了。 這將在隨機的Java EE應用程序服務器上工作。 如果您已經在使用WildFly ,則還可以充分利用WildFly-Camel子系統(tǒng) 。
WildFly駱駝子系統(tǒng)
wildfly-camel的策略是,用戶可以在WildFly已經支持的部署中“僅使用”駱駝核心/組件API。 換句話說,Camel應該在標準Java EE部署中“正常工作”。 二進制文件由平臺提供。 部署無需擔心模塊/接線細節(jié)。
定義和部署駱駝上下文可以以不同的方式完成。 您可以在standalone-camel.xml服務器配置中直接定義上下文,也可以將其作為Web應用程序的一部分部署為帶有預定義-camel-context.xml文件后綴的單個XML文件,也可以作為另一個WildFly支持的一部分進行部署部署為META-INF / jboss-camel-context.xml文件。
WildFly Camel測試套件使用WildFly Arquillian管理的容器。 這可以連接到已經運行的WildFly實例,也可以在需要時啟動獨立服務器實例。 已經實現(xiàn)了許多測試增強器,使您可以將這些WildFly Camel特定類型注入Arquillian測試用例中。 您可以將CamelContextFactory或CamelContextRegistry注入為@ArquillianResource。
如果您要開始使用它,可以閱讀我更詳細的博客文章的詳細信息 。
尋找例子
如果您很興奮,并且一切都準備就緒并且可以運行,那么現(xiàn)在該深入探討一些示例了。 首先要看的是發(fā)行版中的示例目錄 。 有您可能需要的所有示例。
最重要的用例之一是與ActiveMQ的緊密集成。 并假設您有一堆JMS消息需要轉換為存儲在文件系統(tǒng)中的文件:這是一項完美的Camel作業(yè)。 您需要配置ActiveMQ組件 ,而不是上面所看到的,它還允許使用Apache ActiveMQ將消息發(fā)送到JMS隊列或主題,或者從JMS隊列或主題使用消息。
以下代碼向您展示了如何將JMS消息從test.queue隊列轉換為文件組件,該文件組件將使用它們并將它們存儲到磁盤。
想象一下自己做。 需要更多復雜的示例嗎? 與Twitter集成? 還是其他不同的技術? 有很多示例可供選擇。 可能是駱駝最令人興奮的方面之一。 它輕巧,穩(wěn)定,并且已經存在多年了。 確保還遵循郵件列表和論壇 。
翻譯自: https://www.javacodegeeks.com/2014/12/lightweight-integration-with-java-ee-and-camel.html
camel java
總結
以上是生活随笔為你收集整理的camel java_与Java EE和Camel的轻量级集成的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 西施是哪里人(王昭君是哪里人)
- 下一篇: 家庭影院怎么连电脑(家庭影院怎么联网)