2013-09-01 22 views
0

我是Spring Integration的新手,我正在討論一個問題,我有多個通道,但現在我想將這些通道的消息組裝成單通道,如何實現它?我的senario是,我有很多businees模塊,每個模塊將對應一個通道,那些通道將收到請求,然後將消息彙編成一個通道,然後輸出到jms服務器:多通道的消息進入單通道

以下代碼可能嗎?

<channel id='a'/> <bridge input-channel='a' out-channel='assembled'/> 
<channel id='b'/> <bridge input-channel='b' out-channel='assembled'/> 
<channel id='b'/> <bridge input-channel='c' out-channel='assembled'/> 
<channel id='c'/> <bridge input-channel='d' out-channel='assembled'/> 

<channel id='assembled'/> 

<!-- the router will desicde which jms gateway to be sent --> 
<router input-channel='assembled' > 

<channel id='to_jms1'/> 
<channel id='to_jms2'/> 

<jms-outbound-gateway id='jms1' channel='to_jms1'/> 
<jms-outbound-gateway id='jms2' channel='to_jms2'/> 

回答

0

如果你的意思是你要發送抵達A,B,C等,以相同的信道每一個人信息,那麼你有什麼上面會工作。

如果要將a,b,c,d上的消息合併爲單個消息,然後在網橋之後,使用具有適當的關聯和釋放策略的<aggregator/>

有關更多信息,請參閱reference documentation

+0

您好加里羅素,不合併成一個單一的消息,我只想然後進入單通道...我需要'路由'的消息,但標籤路由器將只接受一個輸入通道。所以我需要組裝多個將信道消息轉換爲單個信道,然後路由它們... – Kris

+0

在這種情況下,您是正確的 - 只需將它們橋接到單個信道(或將每個信道的輸出信道設置爲「組合」)即可。 –

+0

你好。將所有消息合併成單個頻道的事實是否會在該頻道上產生瓶頸?或者它沒有任何關係?例如,對於一個日誌記錄系統,它有一個記錄信息的單個通道,然後將消息拆分爲多個通道,這是一個很好的方法嗎? – EoD