我正在使用spring-amqp 1.4.4并且在队列包含太多消息并且它高于水印内存之后,RabbitTemplate接收方法如果在send方法之后被调用则不响应。它无限期地等待。在spring xml中我设置了reply-timeout =" 10"到兔子:模板。如果我不打电话给send方法,只是打电话给它接收就行了。怎么了?
template.convertAndSend("test message");
String msg = (String) template.receiveAndConvert("log.queue"); // receiveAndConvert not response
答案 0 :(得分:1)
出于这个原因,rabbitmq的人建议为发布者和消费者使用单独的连接。
spring amqp CachingConnectionFactory
为所有用户共享一个连接。
我们正在考虑提供使用两个连接的选项,但在此期间,您可以配置两个连接工厂(和模板),一个用于发送,另一个用于接收。