簡體   English   中英

駱駝路線和終點

[英]Camel Routes and Endpoints

我一直在研究Apache Camel文檔,試圖對其最基本的兩個概念(端點和路由)進行具體的理解,盡管這些術語在整個文檔中隨處可見,但我找不到實際定義它們的參考它們是用來做什么的。 盡管他們的名字聽起來相當明顯,而且我我明白了它們是什么,但我現在已被分配到一項讓我深入Apache Camel Land的任務,而且我理解這些機制至關重要是。

我的猜測是“端點”只是一個bean - 可以像配置文件一樣配置在配置文件中 - 將名稱映射到URI /端口組合(這取自W3C文檔)。 在Apache Camel的上下文中,我的猜測是端點用於將組件連接在一起,因此可以在它們之間形成“路由”(連接/映射)。 因此,當生活在端點1的組件A想要與生活在端點2的組件B通信時,只要存在從1到2的映射,Camel就能夠在這兩者之間傳輸消息。

如果我錯在這里,請阻止我並糾正我!

所以現在,我已經看到了可以在Java中配置路由的示例:

from("endpointA").routeId("someMessage").to("endpointB");

我已經看到了可以在XML中配置路由的示例:

<route id="">
    <from .../>
    <to .../>
</route>

這兩種方法是配置路由,還是完全不同的概念?

最后, 端點之間可以路由的消息格式是什么? 例如,如果它必須是XML,那么這些路由消息的XSD /模式是什么? 如果它必須是Java對象,那么哪些邊界/限制適用於Camel可以發送的對象?

看起來你正在理解這個概念。 我認為以更抽象的術語來思考端點是有幫助的。 駱駝文檔在這里沒什么幫助。 端點可以被視為組件的接口。 每個組件可以配置一個或多個端點。 它幫助我考慮路線環境中的端點。 一個簡單的路由可以來自端點A(這可以是JMS隊列,tcp套接字,文件或任何駝峰組件)並轉到端點B(可以是任何駝峰組件)。 當然,您也可以在路徑中使用處理器來轉換數據。

您提供的兩個路由創建示例就是兩種創建路由的方法。 它們是同一概念的例子。 第一個是Java DSL,第二個是使用XML。

消息的格式通常是XML,XML可以是任何有效的XML,不需要綁定到XSD。 該消息也可以是任何Java對象。 只要它停留在JVM中(即,不會越過套接字),它就不需要可序列化。

路線是處理步驟的有序組合

端點表示路由的開始或結束(大多數情況下),其他路由可能連接到它們的開始/結束或可能返回到外部系統(例如JMS,電子郵件等)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM