繁体   English   中英

Spring AMQP Rabbit模板发送超时

[英]Spring AMQP Rabbit template send timeout

我正在使用Spring AMQP库(1.1.4.Release)将消息发送到Rabbit MQ Exchange。 我专门使用RabbitTemplate.correlationconvertAndSend()方法。 该RabbitTemplate是使用CachingConnectionFactory创建的, CachingConnectionFactory PublisherConfirmsPublisherReturns设置为true

最近,当生产者和消费者在发送消息的过程中都关闭了RabbitMQ Broker / Exchange的连接时,我们遇到了网络问题。 这导致org.springframework.amqp.AmqpIOException: java.net.SocketException: Broken pipe被抛出。 但是问题是,此异常在超过150s之后被抛出。 这导致所有线程长时间处于“阻塞”状态。

有什么方法可以设置超时时间,以便可以进行设置,以便早日获得反馈并采取适当的措施。 我正在考虑更多关于http或db调用的超时值。 RabbitMQ的ConnectionFactory的连接超时值为http://www.rabbitmq.com/releases/rabbitmq-java-client/v3.1.0/rabbitmq-java-client-javadoc-3.1.0/com/rabbitmq/client/ConnectionFactory.html#setConnectionTimeout(int)

如果您正在使用spring-amqp API,则应该能够基于连接工厂声明amqp-template对象,如下所示:

<rabbit:template id="amqpTemplate" 
        connection-factory="rabbitMQConnectionFactory" 
        reply-timeout="60000"/>

该方法比rabbitMQ客户端提供的连接超时更高。 它似乎在到达套接字层之前在客户端发送-接收过程中进行管理。

希望对您有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM