连接被阻止时,spring-amqp无法正常工作

时间:2016-12-14 01:23:05

标签: spring rabbitmq amqp spring-amqp spring-rabbit

我正在使用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

1 个答案:

答案 0 :(得分:1)

出于这个原因,rabbitmq的人建议为发布者和消费者使用单独的连接。

spring amqp CachingConnectionFactory为所有用户共享一个连接。

我们正在考虑提供使用两个连接的选项,但在此期间,您可以配置两个连接工厂(和模板),一个用于发送,另一个用于接收。