RabbitMQ + Spring RabbitTemplate:“convertAndSend”超时

时间:2017-10-25 14:09:16

标签: java spring rabbitmq

我有一个相当简单的代码,它使用Spring的RabbitTemplate向RabbitMQ发送消息。代码对接收消息不感兴趣,这是一个简单的 fire and forget 场景。

rabbitTemplate.convertAndSend(exchange, routingKey, payload);

模板是这样创建的(请注意我使用的是交易渠道):

@Bean
public RabbitTemplate rabbitTemplate() {
    val rabbitTemplate = new RabbitTemplate(connectionFactory());
    rabbitTemplate.setChannelTransacted(true);
    rabbitTemplate.setMessageConverter(jsonConverter());
    return rabbitTemplate;
}

当RabbitMQ服务器超载并且此呼叫挂了很长时间并且从未超时时,我遇到了一个问题。连接本身没有死,但是RabbitMQ服务器几乎拥有完整的RAM和100%的CPU使用率,因此没有响应。

有没有办法配置Spring的RabbitTemplate或基础AmqpTemplate,如果它阻塞的时间太长,就会超时一次?

0 个答案:

没有答案