RabbitMQ:渠道与交流之间的关系

时间:2015-01-13 00:52:07

标签: multithreading rabbitmq

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

  • 我理解在这种情况下我应该使用另一个频道,但我想知道的是,是否有必要声明另一个具有不同名称的交换?
  • 两者之间究竟有什么关系?
  • 在什么样的情况下你需要多次交流?

2 个答案:

答案 0 :(得分:1)

正如您所知,频道是用于访问rabbitMQ对象的通信终点。

目前有两种物品:

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

作为一个简单的类比,队列是消息积累的管道,交换是T形,十字形和管道之间的其他类型的连接器。

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

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

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

答案 1 :(得分:1)

看看我们对AMQP概念的介绍

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