RabbitMQ中的Exchange类型问题..消费者期望;扇出;但实际的生产者是;“主题”;

RabbitMQ中的Exchange类型问题..消费者期望;扇出;但实际的生产者是;“主题”;,rabbitmq,Rabbitmq,我有一个docker环境,其中消息传递服务(rabbitmq)和我的服务(myapp)在docker中配置。我尝试使用myapp发布的消息。 myapp在给定的消息通道中生成类型为“fanout”的消息,在使用者代码中,我尝试设置rabbitmq复杂性,以便可以使用类型为“fanout”的消息 consumer sample: factry = newConnectionFactory(); factry.setHost(MYHOST); connection.newConnection();

我有一个docker环境,其中消息传递服务(rabbitmq)和我的服务(myapp)在docker中配置。我尝试使用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 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论坛