【问题标题】:RabbitMQ: Relationship between channels and exchangesRabbitMQ:通道和交易所之间的关系
【发布时间】:2015-01-14 22:28:02
【问题描述】:

现在我正在使用 rabbitMQ 在两个程序之间发送数据 - 1 个队列、1 个通道、1 个交换。我将把它扩展为多线程,我想在第二个线程上声明另一个队列。

  • 我知道在这种情况下我应该使用另一个渠道,但我想知道是否有必要以不同的名称声明另一个交易所?
  • 两者究竟是什么关系?
  • 在什么情况下需要多次交换?

【问题讨论】:

    标签: multithreading rabbitmq


    【解决方案1】:

    如您所见,channel 是用于到达 rabbitMQ 对象的通信端点。

    目前有两种对象:

    • 队列,它们只是消息的缓冲区,
    • 交易所,即广播设备。

    打个比方,队列是消息在其中积累的管道,而交换是管道之间的 T 形、十字形和其他类型的连接器。

    也许将其与物理网络进行比较会更好,其中队列就像电缆,交换机像交换机或智能集线器,不同的分配策略可以被选中。

    所以基本上,你需要做的只是从新的消费者线程创建一个新队列,让它连接到交换对象(你应该有一个名字),然后让生产者线程将它的消息发送到专门交换对象。任何新线程都可以遵循相同的协议。

    最后一点是为交换对象、循环、扇出等选择正确的分发方法,具体取决于您希望消费者接收消息的方式。

    【讨论】:

      【解决方案2】:

      看看我们对 AMQP 概念的介绍

      http://www.rabbitmq.com/tutorials/amqp-concepts.html

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-06-12
        • 1970-01-01
        • 1970-01-01
        • 2019-05-09
        • 1970-01-01
        • 2012-12-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多