春季兔子可以在單一主題上支持多個併發消費者嗎?春季兔子的每個主題的併發消費者
下面是詳細信息
我的系統使用手冊ACK模式通過彈簧的兔子的話題交換(春季4.0.6)。所述圖案如下:
- 消息進入ChannelAwareMessageListener
- 工廠方法產生一個適當的工人,並傳遞到信道
- 如果工人成功處理該消息的引用,該消息是確認」 d
- 如果工人是不成功或異常情況發生時,該消息是Nack'd和送入死信隊列用於以後的處理
由於其中的一些工作人員可以花費相當多的時間來完成他們的IO綁定處理,我需要能夠設置更多的併發用戶。
但經過一番測試後,我發現有時候有幾個消費者收到同樣的消息。果然,一看文檔(http://docs.spring.io/spring-framework/docs/4.0.6.RELEASE/javadoc-api/org/springframework/jms/listener/DefaultMessageListenerContainer.html#setConcurrentConsumers-int-),印證了我的發現:
不要提高併發用戶的數量的話題,除非供應商特定的設置措施明確允許它。通過定期設置,這將導致同時消費同一消息,這幾乎不可取。
我的問題如下:
- 這到底是什麼「除非供應商特定的設置措施明確允許它」是什麼意思?有補丁/版本/配置還是支持這個的兔子?
- 我可以很容易地在客戶端編寫代碼,防止消息被其他工作人員處理時處理消息。那麼,我該怎麼處理這個信息呢?發送nack?忽略它?如果我nack,然後實際處理消息的工作人員在一段時間之後發送ack會發生什麼情況?會拋出異常嗎?
在此先感謝...