0

当消息未路由时,默认行为会丢失消息。

4

1 回答 1

0

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

sudo rabbitmqclt report

获取需要解析以获取所有绑定的报告。看这里

于 2012-05-10T09:46:30.827 回答