如何获取从 MessagingFactory Azure 创建的 Receiver 数量的详细信息

How to get the details of number of Receiver created from the MessagingFactory Azure

我看过一些像下面这样的文章建议计算 PrefetchCount。

当使用默认的 60 秒锁定到期时,SubscriptionClient.PrefetchCount 的一个好的值是工厂所有接收器的最大处理速率的 20 倍。例如,一个工厂创建了 3 个接收者,每个接收者每秒最多可以处理 10 条消息。预取次数不能超过20*3*10 = 600.

但我对以下事情仍然一无所知,

  1. 如何获取从工厂创建的 Receiver 计数?
  2. 如何获取Receiver处理的消息数量的详细信息?

提前致谢。

接收器是在您的代码中创建的,因此您应该知道您有多少接收器。

虽然这并不重要。您只需要知道一秒钟内(每个工厂)总共可以处理多少条消息。您可以为此添加一个自定义性能计数器,或者 运行 只对一个工厂进行测试并查看门户中的 Azure Monitor 统计信息。

如果您显式调用 ReceiveBatch,请务必将 PrefetchCount 设置为高于批量大小的值。高多少 - 有点取决于你的时间安排,但目标是在任何调用 ReceiveBatch.

时总是有一个预取批次可用

最后,我建议这个建议是近似值,您不必完全遵循公式。稍微调整一下 PrefetchCount 并确定哪个值可以为您提供最佳性能。