【发布时间】:2017-05-13 12:25:36
【问题描述】:
如果我不在 RabbitMQ 中使用交换,我可以获得消费者数量:
channel.QueueDeclare(queue: "Sellers",
durable: false,
exclusive: false,
autoDelete: false,
arguments: null);
int sellersCount = channel.ConsumerCount("Sellers");
如何检测交换的消费者数量:
channel.ExchangeDeclare(exchange: "Shop",
type: "direct");
channel.BasicPublish(exchange: "Shop",
routingKey: "Sellers",
basicProperties: null,
body: body1);
channel.BasicPublish(exchange: "Shop",
routingKey: "Clients",
basicProperties: null,
body: body2);
int sellersCount = ???
int clientsCount = ???
【问题讨论】:
-
不存在交换消费者的数量。 Exchange 将消息路由到一个或多个队列。
-
我可以从交换中获取队列对象吗?我可以通过队列名称获取消费者数量。但我不知道如何从交换中获取队列名称
-
我认为没有办法通过 amqp 协议本身来做到这一点。但是,rabbitmq 有一个管理插件,并且该插件具有 http api。使用该 api,您可能能够在当前时刻将队列绑定到某个交换。虽然我必须承认你需要这样做的事实可能表明你的设计存在一些缺陷,因为你永远不需要这样做。你能澄清你试图解决的实际问题吗?
-
我需要知道卖家的数量。如果卖家数量等于 0,我会为客户显示:“没有卖家在线”。