【问题标题】:RabbitMq topic exchangeRabbitMq 话题交流
【发布时间】:2015-08-25 02:22:49
【问题描述】:

是否可以使用RabbitMQ主题交换实现以下场景。

假设我有两个队列:

Queue1:路由键 MainRoute.Route1

Queue2:路由键 MainRoute.Route2

当我使用路由键发布消息时:

MainRoute.Route1 -> 队列1

MainRoute.Route2 -> Queue2

MainRoute -> Queue1 和 Queue2

是否可以在不执行一些特殊的过滤、路由过程的情况下实现这一点?

如果不能,请您就问题的可能解决方案提出建议。

谢谢。

【问题讨论】:

    标签: c# rabbitmq message-queue rabbitmq-exchange


    【解决方案1】:

    这可以通过直接或主题交换来完成,并且在您的交换中需要 4 个绑定。

    以名为“MainEx”的交易所为例,路由键的设置如下:

    |交流|装订 |队列 | | -------- | ---------------- | ------ | |主要交易 | MainRoute.Route1 |队列1 | |主要交易 | MainRoute.Route2 |队列2 | |主要交易 |主干线 |队列1 | |主要交易 |主干线 |队列2 |

    通过主题交换,您可以使用标志将多条消息发送到单个队列。例如,将“MainRoute.#”绑定到“Queue3”会将所有 MainRoute 消息发送到 Queue3。

    但是,没有办法使用单个绑定来做相反的事情。你需要创建多个绑定来做你想做的事。

    【讨论】:

    • 是的,这实际上是我所做的。是否有任何高级拓扑路由示例的示例。我认为企业集成模式会是一本很好的参考书,但是,这本书很浅。
    • 我不知道任何涉及高级路由配置的内容......但老实说,我不确定是否有很多高级路由功能。我写了一本书,为仍在努力了解何时使用每种类型的交换的人们提供了更多的介绍级别,尽管:leanpub.com/rabbitmq-structures-and-layout 不知道它是否对您的情况有帮助,但它可能会。
    猜你喜欢
    • 2021-11-28
    • 2013-11-12
    • 1970-01-01
    • 2011-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-21
    • 2012-03-31
    相关资源
    最近更新 更多