春季兔子可以在单一主题上支持多个并发消费者吗?春季兔子的每个主题的并发消费者
下面是详细信息
我的系统使用手册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会发生什么情况?会抛出异常吗?
在此先感谢...