У меня есть среда докера, где служба сообщений (rabbitmq) и мои службы (myapp) настроены в докере.Я пытаюсь использовать сообщения, опубликованные myapp.myapp создает сообщения типа «fanout» в заданном канале сообщений и в коде потребителя, я пытаюсь настроить тонкости rabbitmq так, чтобы сообщения типа «fanout» могли использоваться.
consumer sample:
factry = newConnectionFactory();
factry.setHost(MYHOST);
connection.newConnection();
chnl = connection.createChannel();
channel.exchangeDeclare("MYEXCHG","fanout",true);
.....
and so on.
Когда потребитель устанавливает значение rabbitmq, как показано выше: я получаю следующую ошибку PRECONDITION: Причины:
com.rabbitmq.client.ShutdownSignalException: ошибка канала;Метод протокола: #method (reply-code = 406, reply-text = PRECONDITION_FAILED - неэквивалентный аргумент 'type' для обмена 'applicationStatus' в vhost '/': получен 'fanout', но текущим является 'topic', class-id = 40, method-id = 10)
Я достаточно проанализировал код производителя и код потребителя.Тем не менее я не мог сузить вопрос.Мой вопрос здесь: Могу ли я настроить канал таким образом, чтобы я мог принимать любые типы сообщений, отправленных производителем.
Скажите, что Producer P1 создает сообщения типа direct, а P2 создает сообщения типа fanout.Могу ли я иметь общий потребительский код, чтобы он мог получать сообщения от P1 и P2 ...