當前位置:編程學習大全網 - 源碼下載 - 什麽時候使用Apache camel

什麽時候使用Apache camel

什麽時候使用Apache camel

Enterprise Application Integration 企業應用集成(EAI)

企業應用集成是必要的,幾乎每家公司都有很多新產品及應用,如何集成這些應用程序是壹個問題。來每十年誕生壹個新範式,例如客戶端/服務器通信,面向服務的架構(SOA)或雲計算。

此外,不同的接口或協議和技術的出現。過去數據存儲在文件,SQL數據庫在今天很通用。有時,還需要NoSQL數據庫。同步遠程過程調用RPC或異步消息是通過如RMI,SOAP的Web服務,REST或JMS進行通信的。很多軟件筒倉還存在。

Enterprise Integration Patterns 企業集成模式(EIP)

當然,妳可以推倒重來,然後再寫壹些意大利面條代碼,讓應用程序協同工作。不幸的是,妳的管理者不會喜歡這個缺少長遠眼光的解決方案。

企業集成模式(www.eaipatterns.com)幫助碎片的問題,並使用標準化的方法來集成應用程序。使用相同的概念路由消息來改造。因此,每次有問題時重新發明輪子不是個好主意。

集成的替代方案

解決方案1 :自定義解決方案

實現壹個單獨的解決方案,適用於您的問題還沒有分離切成碎片。此工程可能是最快的替代的小型用例。妳必須自己編寫所有。維護成本可能會高,特別是如果團隊成員改變。

解決方案2:集成框架

使用這類框架有助於將多個集成模式集成在壹個標準化的方式。它減少了損耗。每個開發人員會很容易明白妳做了什麽(如果他知道所使用的架構) 。

解決方案3:企業服務總線(ESB )

應用企業服務總線在您的應用程序集成中。ESB還有更多的功能,如業務流程管理,註冊表或業務活動監控。通常,您可以在圖形用戶界面配置路由實現這些功能 - 通常情況下,壹個ESB是壹個復雜的產品。學習曲線要高得多。但是提供您壹個非常強大的工具。

Apache Camel是什麽?

Apache

Camel是壹個輕量級的集成框架,它實現了所有EIP。因此,您可以使用EIP所需的圖案容易地集成不同的應用。您可以使用Java,Spring的

XML,scala或Groovy。幾乎每壹個技術,妳可以想像是可用的,例如

HTTP,FTP,JMS,EJB,JPA,RMI,JMS,JMX,LDAP的Netty,和很多很多(當然大多數ESB還提供了對他們的支持)。此

外,自定義的組件可以很容易地被創建。

您可以部署Apache的駱駝作為獨立的應用程序,在Web容器(如Tomcat或Jetty),在JEE應用服務器(如JBoss應用服務器或WebSphere AS),在OSGi環境或與Spring容器組合。

什麽時候使用Camel

如果妳想多個應用程序使用不同的協議和技術集成,Apache

Camel是真棒。除了支持如此多的技術和除了支持不同的編程語言,每個集成使用EIP下的相同概念!無論您使用何種協議。無論您使用什麽技術。無論您使

用何種領域特定語言( DSL) - 它可以通過Java , Scala, Groovy的或Spring的XML

。做同樣的方式。永遠!(有壹個生產者,消費者,端點endpoint,有EIP概念,有定制處理器參數(如憑據) 。

比如使用Java DSL表達如下:

from(?activeMQ:orderQueue“)..transaction().log(?processing order“).to(mock:“notYetExistingInterface“)

使用Scala DSL:

file:incomingOrders?noop=true“ process(new TransformationProcessor) to ?jdbc:orderDatastore“

如果妳是壹個開發者,應該能看懂這些意思。

另外兩個非常重要的特點是對錯誤處理(例如使用死信隊列)和自動測試的支持。

什麽時候不使用Camel

在自己的定制集成,集成框架,企業服務總線這三種方案中不使用Camel,難易程度如下:

如果妳要整合壹個或兩個技術,如讀取某個文件或發送JMS消息,使用壹些眾所周知的庫可能是更容易和更

快,如Apache Commons IO或Spring

JmsTemplate的。但是,請不要總是使用這些helper類,純文件或try-catch捕捉代碼錯誤的JMS集成是SOOOO難看的!

FuseSource雖然提供商業支持,我不會使用Apache駱駝在非常大的集成項目中。

ESB是在大多數情況下,正確的工具選擇。它提供了許多額外的功能,如BPM或BAM 。當然,妳也可以使用多個單框架或產品和“創造”自己的ESB

,但是這是在浪費時間和金錢(在我看來) 。

通常情況下,開放源代碼解決方案相比商業產品如WebSphere Message

Broker更輕量級(妳安裝此產品的試用版可能需要壹兩天) !著名的開源ESB有Apache的ServiceMix的,騾子ESB和WSO2

ESB 。順便說壹句:妳知道基於Apache Camel框架基礎上壹些ESB?(如Apache的服務組合和Talend ESB)

。因此,如果妳喜歡Apache的駱駝,妳也可以使用Apache ServiceMix這樣的ESB。

  • 上一篇:百度腦圖可以導出的文件格式
  • 下一篇:npm安裝完uglifyjs怎麽對js代碼進行混淆
  • copyright 2024編程學習大全網