RabbitMQ中的Exchange类型问题..消费者期望;扇出;但实际的生产者是;“主题”;
我有一个docker环境,其中消息传递服务(rabbitmq)和我的服务(myapp)在docker中配置。我尝试使用myapp发布的消息。 myapp在给定的消息通道中生成类型为“fanout”的消息,在使用者代码中,我尝试设置rabbitmq复杂性,以便可以使用类型为“fanout”的消息RabbitMQ中的Exchange类型问题..消费者期望;扇出;但实际的生产者是;“主题”;,rabbitmq,Rabbitmq,我有一个docker环境,其中消息传递服务(rabbitmq)和我的服务(myapp)在docker中配置。我尝试使用myapp发布的消息。 myapp在给定的消息通道中生成类型为“fanout”的消息,在使用者代码中,我尝试设置rabbitmq复杂性,以便可以使用类型为“fanout”的消息 consumer sample: factry = newConnectionFactory(); factry.setHost(MYHOST); connection.newConnection();
consumer sample:
factry = newConnectionFactory();
factry.setHost(MYHOST);
connection.newConnection();
chnl = connection.createChannel();
channel.exchangeDeclare("MYEXCHG","fanout",true);
.....
and so on.
当使用者设置rabbitmq thingy时,如上所示:
我得到以下预条件错误:
原因:
com.rabbitmq.client.ShutdownSignalException:通道错误;协议
方法:#方法(回复代码=406,
回复文本=前提条件_失败-exchange的参数“类型”不相等
vhost“/”中的“applicationStatus”:收到“扇出”,但当前为
“主题”,类id=40,方法id=10)
我已经对生产者代码和消费者代码进行了足够的分析。我仍然无法缩小这个问题的范围。我的问题是:我是否可以配置频道,使其能够接受制作人发送的任何类型的消息
假设生产者P1产生直接类型的MSG,P2产生扇出类型的MSG。我可以有一个共同的消费者代码,以便它将能够接收从P1和P2产生的MSG
假设生产者P1产生直接类型的MSG,P2产生扇出类型的MSG。我可以有一个共同的消费者代码,以便它将能够接收从P1和P2产生的MSG
消息没有类型为直接
或扇出
,交换则有。您的发布者代码和消费者代码必须声明两个交换,每种类型一个
然后,您的发布者将发布到每个exchange,具体取决于消息是直接路由到队列还是扇出到多个队列
最后,您的使用者必须声明队列并将其绑定到每个exchange,然后从每个队列进行消费
注意:RabbitMQ团队监视
RabbitMQ用户,并且只在某些时候回答有关StackOverflow的问题。是,它不是消息类型,而是交换类型。感谢Luke Bakken的支持。我已经接触到拉比MQ论坛