我正在寻找一种方法 RabbitMQ中的分层路由。我试图在文档中找到答案,但突然失败了。
通常,RabbitMQ允许您通过某些路由密钥连接到直接交换,但我不清楚如何在多个交换机之间路由。
例如,我们说我们已经拥有了#root;'交换和' host1'与路由键' host1'交换。我有一个队列绑定到主机1'通过路由键交换自己的pid。 我可以将消息发布到' root'与routing_key交换,例如' host1.31261'?显然,它并没有完全按照这种方式工作,但有没有办法制定一条具有不同直接交换的复杂路线?
答案 0 :(得分:1)
您可以对此
使用exchange to exchange绑定您可以包含此绑定的路由键
原始目标和目标的交换类型可以是您想要的任何类型。需要主题交换复杂的路由?然后将你的交流声明为主题。
你甚至可以从host
的主题交换到直接或扇出交换作为目标。
关键是在进行绑定之前声明每个需要声明的交换。
该文档中显示的示例包括java和.net代码。您需要向图书馆查询您使用的特定语言。
但是,总的来说,队列的相同绑定适用于交换。你只需要调用等效的" bind exchange"方法,而不是"绑定队列"如果您的图书馆不支持,您可以通过RabbitMQ管理网站手动添加绑定。