Почему я получаю исключение обмена RabbitMQ? - PullRequest
0 голосов
/ 08 июля 2020

Вот мои настройки очередей для тестов, они неверны, но работают:

mq:
  username: guest
  password: guest
  host: localhost
  port: ${QA_RABBIT_LISTENER}
  ig-smev3:
    listener:
      vhost: /
      exchangeName: igSmev3Listener
      queueName: igSmev3-ListenerQueue
      routingKey: igSmev3-Listener
    producer:
      vhost: /
      exchangeName: igSmev3Producer
      queueName: igSmev3-ProducerQueue
      routingKey: igSmev3-Producer

Если я установлю

vhost: /
      exchangeName: igSmev3Producer
      queueName: igSmev3ProducerQueue
      routingKey: igSmev3Producer

, я получу сообщение об ошибке:

Caused by: com.rabbitmq.client.ShutdownSignalException: channel error; protocol method: #method<channel.close>(reply-code=406, reply-text=PRECONDITION_FAILED - inequivalent arg 'type' for exchange 'igSmev3Listener' in vhost '/': received 'fanout' but current is 'direct', class-id=40, method-id=10)

Что случилось?

1 Ответ

1 голос
/ 08 июля 2020

неэквивалентный аргумент 'type' для обмена 'igSmev3Listener' в vhost '/': получен 'fanout', но текущий 'прямой'

У вас уже есть обмен igSmev3Listener на брокер и его тип - fanout, но вы указываете то же имя и тип по умолчанию - direct.

Рассмотрите возможность удаления этого обмена перед запуском вашего приложения.

Это похоже на Дежавю с подобным вопросом с похожими свойствами: Как установить x-dead-letter-exchange в Rabbit?

...