[英]spring integration jms components understading
我對Spring集成和JMS適配器項目不熟悉,我試圖了解各種適配器。 請有人解釋,為什么以及何時使用以下內容
<bean id="jmsDestination" class="com.tibco.tibjms.TibjmsQueue">
<constructor-arg value="queue.sample" />
</bean>
這充當隊列嗎?
<integration:channel id="requests"/>
這是什么? 為什么以及何時應該定義和使用什么?
<int-jms:outbound-channel-adapter>
和<int-jms:inbound-channel-adapter>
什么時候以及為什么我們應該使用它? 請注意,我從文檔中了解到,一個是消費者,另一個是向頻道創建新消息。
最后, <int-jms:message-driven-adapter>
什么時候以及為什么我們應該使用它?
我可以瀏覽文檔,了解其中的每一個,但是無法弄清楚編寫Spring集成代碼的順序,以便我可以將它們連接在一起。
例如:回答如下:“您需要定義一個通道,然后它應該有一個出站適配器,其目的地名稱與通道ID相匹配。等,這樣會很有幫助”
我在這里先向您的幫助表示感謝。
Spring Integration是企業集成模式的實現。
Message Channel
將生產者綁定到消費者。 最常見的類型是DirectChannel
,它是您在上面定義的一種。
您的第一個<bean/>
與Spring Integration無關,它是Tibco對JMS Destination
的實現(在本例中為稱為queue.sample
的隊列)。 不幸的是,JMS選擇了“目的地”,因為您不僅要發送到目的地,而且還要從目的地接收。
Spring Integration適配器(及其所在的Spring JMS)將消息發送到JMS目標並從JMS目標接收消息。 目標是適配器配置的一部分。
outbound-channel-adapter
用於將消息發送到JMS。 入站通道適配器有兩種類型, inbound-channel-adapter
是已輪詢的消息源-您將輪詢器配置為每隔很長時間運行一次,它將輪詢適配器以對消息進行“輪詢”。 輪詢器通常會在客戶端中阻止可配置的超時。 message-driven-channel-adapter
未輪詢; 它具有(一個或多個)事件驅動的內部線程-當消息到達隊列時,消息會被推送到適配器的通道。
在這兩種驅動程序中,最常用的是消息驅動適配器,但是如果希望僅在一天中的特定時間(使用cron觸發器)檢索消息,則可能希望使用輪詢適配器。
典型的流程可能是
message-driven-adapter->transformer->outbound-channel-adapter
在->
是通道的情況下,轉換器對數據進行一些處理,並且適配器將配置為可從目標讀取和寫入目標。
建議您閱讀參考手冊的介紹性章節和JMS章節。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.