有没有办法配置“主题交换”以将非路由消息发送到队列?

时间:2012-05-09 19:58:40

标签: message-queue rabbitmq

使用未路由邮件时的默认行为,邮件将丢失。

1 个答案:

答案 0 :(得分:0)

您可以创建一个队列,通过在绑定中使用#作为路由键来接收所有消息。然后创建一个处理所有非路由消息的进程。该进程必须连接到队列并接收所有消息,并以某种方式知道它们是否已被路由。您需要做的是调用管理插件cli来返回交换的所有绑定。解析该结果以获取此交换的绑定列表,并忽略与绑定匹配的任何传入消息。然后你就可以处理那些从未被排到第一位的那些。您甚至可以将它们读回另一个队列以供工作进程使用。 有关管理插件cli的信息,请查看this。 如果您更喜欢使用rabbitmqctl,可以使用

sudo rabbitmqclt report

获取需要解析以获取所有绑定的报告。见here