我看到我公司的一個應用程序使用JMS進行併發調用。該應用程序是一個用Spring編寫的web服務。這使得一些外部呼叫。當收到某個操作的請求時,它將一些消息發送到JMS隊列,並由一個MDB處理這些消息。然後,應用程序會整理所有響應,將其映射回其數據模型並返回響應。我過去曾經使用過JMS來開火和忘記呼叫,但我無法弄清楚應用程序如何等待來自JMS隊列的響應。請你能解釋一下是否有辦法做到這一點?並行處理 - JMS
回答
Vicky,這樣做的一種方式是使用業務關聯。真正意義上的消息傳遞是異步的。但是可以使用「僞同步」呼叫。做到這一點的方法是在發佈請求時使用一個ID並在同一個線程上使用JMSMessageSelector(使用相同的ID)輪詢響應。此外,如果存在多個後端,您也可以進行聚合,在聚合和發送響應之前,也可以通過在消息中包含部件ID並進行輪詢以查看是否所有「部件已組裝」。 The JMS Message Selector。模式的高層次概述記錄here以及
謝謝拉姆!!!!! –
誰投了票,請做理由讓我能更好地回答這個問題? –
有人正在貶低我所有的問題和認可的答案。我認爲你的回答沒有任何問題。對不起。 –
- 1. 駱駝JMS組件和並行處理
- 2. JMS與JPPF(Java並行處理)框架
- 3. 並行處理
- 4. 並行處理
- 5. 多並行並行處理
- 6. JBoss不處理JMS消息
- 7. 有效的JMS處理
- 8. JMS多線程處理
- 9. 並行處理VS串行處理
- 10. PHP - 並行處理
- 11. Django並行處理
- 12. PHPList並行處理
- 13. GNU並行處理
- 14. 並行處理 - Python
- 15. Symfony2並行處理
- 16. 並行處理Python
- 17. VHDL處理並行
- 18. pthread並行處理
- 19. 並行處理庫
- 20. Spring並行處理
- 21. 在並行處理
- 22. 彈簧批處理 - 並行處理
- 23. Spring批處理並行處理
- 24. 並行數據處理結果彙總
- 25. 替代JMS消息傳遞以在Torquebox中進行併發處理
- 26. Java/JMS-處理處理失敗場景的消息數
- 27. 批處理事件處理中的JMS事件
- 28. JMS - 異步處理 - 處理父/子進程依賴關係
- 29. 在Java EE中分片並行處理
- 30. 與LINQ並行csv處理
完全是一個猜測,但它聽起來像需要有某種方式來說「我完成了」。您仍然可以使用fire並忘記,但雙方都需要知道消息流何時完成。異步體系結構中的「毒丸」/ EOF類型的設計很常見,它們並非完全異步。 – stdunbar