2012-12-21 45 views
3

我有一個系統,我正在尋找與春季集成改造後端。進行異步調用HTTP出站網關

在這個系統中的一些模式,看看擊中相同的Web服務和/或HTTP服務器(我有兩個)與多個請求和稍微不同的參數。結果然後彙總在一起並呈現給用戶

我讓它在同步模式下成功工作,其中請求通過網關進入,將「拆分」爲包含每個呼叫鍵值的消息(呼叫與A,與B打電話,與XYZ打電話)。每個消息然後轉到HTTP出站網關,呼叫完成並返回。然後將結果彙總在一起並通過網關發回。

我正在努力與異步使這些HTTP調用。目前的系統使用Futures在一個單獨的線程中進行每個呼叫。我想要一個類似的模式。

我想我需要做的是創建第二個網關,它包裝HTTP出站網關,並使用返回值來創建異步調用。但是,我不確定這將如何與聚合有關,並且感覺應該有更清晰的方式。我沒有機會在3年內使用Spring Integration,所以我試圖重新學習所有的東西。

我錯過了什麼,或者這是你需要怎麼做的嗎?

回答

3

您可以簡單地製作出站網關訂閱的通道ExecutorChannels(http://static.springsource.org/spring-integration/reference/html/messaging-channels-section.html#executor-channelhttp://static.springsource.org/spring-integration/reference/html/messaging-channels-section.html#channel-configuration-executorchannel)。

這樣,每個請求將在單獨的線程上運行 - 聚合發佈將發生在接收最終響應的線程上。您的原始線程將在網關中等待響應(或者您可以使用異步網關並等待未來)。

+0

謝謝。我知道我錯過了一些「明顯」的東西,我只需要了解故障轉移將現在工作。 –