我在那里消息服务(RabbitMQ的),我的服务(MYAPP)在泊坞窗配置一个码头工人的环境。我尝试使用由MYAPP发布的消息。 MyApp的生产型“扇出”的消息在给定的消息信道和在消费者代码,我尝试设置的复杂的RabbitMQ使得型“扇出”的消息可以被消耗掉。
consumer sample:
factry = newConnectionFactory();
factry.setHost(MYHOST);
connection.newConnection();
chnl = connection.createChannel();
channel.exchangeDeclare("MYEXCHG","fanout",true);
.....
and so on.
当消费者设置的RabbitMQ啄如上图所示:我获得以下前提错误:产生的原因:
com.rabbitmq.client.ShutdownSignalException:信道误差;协议方法:#method(应答代码= 406,回复文本= PRECONDITION_FAILED - 不等价ARG '类型' 的交换 'applicationStatus' 在虚拟主机 '/': '接收扇出',但电流为 '主题',类-ID = 40 ,方法-ID = 10)
我有足够的分析生产者代码和消费者的代码。我仍然无法缩小问题的范围。我在这里问的是:我可以这样一种方式,我将能够接受任何类型的制造者发送的消息的配置通道。
说生产者P1产生类型的消息的直接和P2产生扇出型的消息。我可以有一个共同的消费代码,以便它能够接收来自P1和P2产生封邮件...
说生产者P1产生类型的消息的直接和P2产生扇出型的消息。我可以有一个共同的消费代码,以便它能够接收来自P1和P2产生封邮件...
消息没有类型direct
或fanout
的,交易所做。您的出版商和消费者的代码将不得不宣布两家交易所,每种类型之一。
然后,您的出版商将发布到每个交换,这取决于是否应该将消息直接发送到队列或扇出几个队列。
最后,你的消费者将必须申报并结合队列每次交换,再从每个队列消费。
注:RabbitMQ的团队监控rabbitmq-users
mailing list和只是有时在计算器上回答问题。
是它不是消息类型,而不是交易类型。感谢卢克巴肯您的输入。我已就到RabbitMQ的论坛。
https://groups.google.com/forum/#!topic/rabbitmq-users/6IQ4s6pmys0