我們將部署Spring集成代碼到運行在多個tomcat服務器上的Web應用程序。我們有一個如下所示的JMS出站網關。問題在於是否有可能由其中一個servlet容器JVM(如tomcat1)發送的消息可以被另一個servlet容器JVM(如tomcat2)接收?在我們的例子中,在春季集成流程中,我們將消息拆分爲多條消息並將其發送到JMS出站網關,一旦收到響應,我們將使用將消息聚合回同一個JVM。羣集環境中的JMS出站網關
所以如果其他JVM收到響應就會成爲問題。有人知道嗎?
<int-jms:outbound-gateway id="wldpJMSGateway"
connection-factory="cachedConnectionFactory"
extract-reply-payload="true"
request-channel="wldpJMSGatewayChannel"
request-destination-name="WLDP.REQUEST.QUEUE"
reply-channel="wldpJMSResponseChannel"
reply-destination-name="WLDP.RESPONSE.QUEUE"
receive-timeout="5000"
extract-request-payload="true"
/>
感謝您的回覆。我看到它在http://docs.spring.io/spring-integration/reference/html/jms.html中有記錄。然而,即使在集羣環境中,這也不是很清楚。我認爲在集羣環境中,所有網關(在不同的jvms中)都會在響應隊列上進行監聽。您是否建議網關有一些機制來檢測消息是否源自相同的jvm其他消息不消息?如果你能指導我閱讀一些文檔,我可以通讀一下。 –
看到我編輯的答案。 –
非常感謝Gary的更多解釋和確認行爲。 –