了解下規則引擎的優勢(我覺得最重要是規則引擎定義了各種協議的相互轉換--個人觀點)
1.應用范圍和特點:
對於企業應用來說,由於歷史或者多廠商等原因造成了其系統之間的通訊協議多樣化,
而由於企業業務發展,這些應用系統之間交互需求日益增多。
Apache Camel可以幫助大家通過定義簡單的路由規則來實現不同企業應用之間的互聯互通。
Apache Camel 把不同的企業應用抽象成為Endpoint, 通過URI來對這些Endpoint 進行描述,
由於Apache Camel提供了一個基於POJO的企業應用模式的實現,
同時Camel提供了60多個組件來負責具體的傳輸協 議,
這樣用戶可以通過簡單的消息路由規則定義,就可以實現各應用系統之間交互。
舉個例子,
如果你有一個應用只提供一個JMS接口,
而你的另一個應用提供 WebServices接口,
那你的路由規則可以這么定義:
from("jms://xxxx").to("cxf://xxxx)
當然你有可能需要對JMS接口過來的消息做一些處理在轉發給WebService應用。
那只需在兩個節點之間要加入一個processor來實現你需要做的處理就行了
from("jms://xxxx").processor(new MyProcessor()).to("cxf://xxxx")
總結:由上面的例子可以看到Camel的路由規則很直觀簡單,
可以像寫Java代碼一樣定義路由規則。
當然Camel還提供了其他方式來描述路由規則,
例如Spring 配置文件,Scala等。
2.優勢
(1) 目前市面上有不少的同類產品,例如同是開源的Mule,以及商業產品Fuse套件。
(2)Camel與它們相比有最大的不同就是它十分小巧,而且不容易讓開發人員失去對代碼的控制。
使用者可以把它當作一個小的應用庫,而不是一個大的運行容器。
這樣可以很輕松地將其集成的Web容器,JBI容器,或者OSGi容器中。
(3)也可以像寫Java代碼的方式編輯路由規則,支持開發人員在的集成開發工具中使用平常的,
類型安全的,可自動補全的Java代碼來編寫路由規則,
與那種復雜的XML配置相比極大簡化了規則定義開發。
(4)更詳細的有以下幾點:
1.Camel使用一個Java特定於域的語言除了Spring的XML配置路由規則,並提供企業集成模式;
2.Camel的API極小而干凈的,與的JBI,CXF的和的JMS的API緊密匹配。
3.基於周圍消息交換的Camel要比基於UMO模型的Mule能更加緊密地映射到REST,WS,的WSDL和JBI;
4.Camel允許容易地暴露底層的傳輸細節(例如JmsExchange,JbiExchange,HttpExchange);
5.Camel在核心API支持隱式類型轉換器,能更容易地把組件連接在一起;
6.Camel和Apache ActiveMQ,CXF,ServiceMix有很好的集成,而這些項目都是 企業應用開發經常會接觸到的。
7.另外,Camel是完全開源,而Mule和Fuse套件的商業許可帶有限制性。
學習來源:https://www.open-open.com/lib/view/open1340807942296.html