如何获取从 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.
但我对以下事情仍然一无所知,
- 如何获取从工厂创建的 Receiver 计数?
- 如何获取Receiver处理的消息数量的详细信息?
提前致谢。
接收器是在您的代码中创建的,因此您应该知道您有多少接收器。
虽然这并不重要。您只需要知道一秒钟内(每个工厂)总共可以处理多少条消息。您可以为此添加一个自定义性能计数器,或者 运行 只对一个工厂进行测试并查看门户中的 Azure Monitor 统计信息。
如果您显式调用 ReceiveBatch
,请务必将 PrefetchCount
设置为高于批量大小的值。高多少 - 有点取决于你的时间安排,但目标是在任何调用 ReceiveBatch
.
时总是有一个预取批次可用
最后,我建议这个建议是近似值,您不必完全遵循公式。稍微调整一下 PrefetchCount
并确定哪个值可以为您提供最佳性能。
我看过一些像下面这样的文章建议计算 PrefetchCount。
当使用默认的 60 秒锁定到期时,SubscriptionClient.PrefetchCount 的一个好的值是工厂所有接收器的最大处理速率的 20 倍。例如,一个工厂创建了 3 个接收者,每个接收者每秒最多可以处理 10 条消息。预取次数不能超过20*3*10 = 600.
但我对以下事情仍然一无所知,
- 如何获取从工厂创建的 Receiver 计数?
- 如何获取Receiver处理的消息数量的详细信息?
提前致谢。
接收器是在您的代码中创建的,因此您应该知道您有多少接收器。
虽然这并不重要。您只需要知道一秒钟内(每个工厂)总共可以处理多少条消息。您可以为此添加一个自定义性能计数器,或者 运行 只对一个工厂进行测试并查看门户中的 Azure Monitor 统计信息。
如果您显式调用 ReceiveBatch
,请务必将 PrefetchCount
设置为高于批量大小的值。高多少 - 有点取决于你的时间安排,但目标是在任何调用 ReceiveBatch
.
最后,我建议这个建议是近似值,您不必完全遵循公式。稍微调整一下 PrefetchCount
并确定哪个值可以为您提供最佳性能。