C# RabbitMQ中的使用者计数(使用exchange)
如果我在RabbitMQ中不使用exchange,我可以获得消费者的数量:C# RabbitMQ中的使用者计数(使用exchange),c#,.net,rabbitmq,amqp,C#,.net,Rabbitmq,Amqp,如果我在RabbitMQ中不使用exchange,我可以获得消费者的数量: channel.QueueDeclare(queue: "Sellers", durable: false, exclusive: false, autoDelete: false, arguments: null); int sellersCount
channel.QueueDeclare(queue: "Sellers",
durable: false,
exclusive: false,
autoDelete: false,
arguments: null);
int sellersCount = channel.ConsumerCount("Sellers");
如何使用exchange检测消费者计数:
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 = ???
要详细说明的是,这里是。尝试GET/api/exchanges/vhost/name/bindings/source
:
以给定交换为源的所有绑定的列表
请注意,关于此解决方案也有一些答案。没有交换的消费者数量。Exchange将邮件路由到一个或多个队列。我可以从Exchange获取队列对象吗?我可以通过队列名称获得消费者的数量。但我不知道如何从exchangeI获取队列名称我认为没有办法通过amqp协议本身实现这一点。不过,rabbitmq有一个管理插件,该插件具有http api。使用该api,您可能能够在当前时刻将队列绑定到特定的exchange。尽管我必须承认,您需要这样做的事实可能表明您的设计中存在一些缺陷,因为您不应该这样做。你能澄清一下你想解决的实际问题吗?我需要知道卖家的数量。如果卖家数量等于0,我会为客户显示:“无在线卖家”。