首页 > 解决方案 > 如何获取从 MessagingFactory Azure 创建的接收器数量的详细信息

问题描述

我看过一些类似下面建议计算 PrefetchCount 的文章。

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

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

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

提前致谢。

标签: c#azureazureservicebus

解决方案


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

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

如果您ReceiveBatch显式调用,请确保设置PrefetchCount为高于批量大小的值。高多少 - 取决于您的时间,但目标是在任何调用ReceiveBatch.

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


推荐阅读