spring-amqp не работает правильно, когда соединения заблокированы
Я использую spring-amqp 1.4.4 и после того, как очередь содержит слишком много сообщений, и она находится над памятью водяного знака, метод приема RabbitTemplate не отвечает, если он был вызван после метода send. Это ждать бесконечно. А весной xml я установил reply-timeout="10" для rabbit:template. Если я не вызываю метод send, а просто вызываю, получаю, это работает хорошо. В чем дело?
template.convertAndSend("test message");
String msg = (String) template.receiveAndConvert("log.queue"); // receiveAndConvert not response
1 ответ
Именно по этой причине ребята из rabbitmq рекомендуют использовать отдельные соединения для издателей и потребителей.
Весенний amqp CachingConnectionFactory
разделяет одно соединение для всех пользователей.
Мы рассматриваем возможность использования двух соединений, но тем временем вы можете настроить две фабрики соединений (и шаблоны), одну для отправки и другую для получения.