我看过一些类似下面的文章,建议计算PrefetchCount。
使用默认的60秒锁定到期时,SubscriptionClient.PrefetchCount的一个很好的值是工厂所有接收器的最大处理速率的20倍。例如,一个工厂创建3个接收方,每个接收方每秒最多可处理10条消息。预取计数不应超过20 * 3 * 10 = 600。
但我仍然对以下事情一无所知,
谢谢。
答案 0 :(得分:0)
在您的代码中创建了接收器,因此您应该知道有多少个接收器。
这并不重要。您只需要知道在一秒钟内(每个工厂)总共可以处理多少条消息。您可以为此添加一个自定义性能计数器,或者仅在一个工厂中运行测试,然后在门户中查看Azure Monitor统计信息。
如果要显式调用ReceiveBatch
,请确保将PrefetchCount
的值设置为大于批处理大小。更高多少-取决于您的时间安排,但目标是在每次调用ReceiveBatch
时始终有一个预取的批次。
最后,我建议此建议是近似的,您不必严格遵循公式。稍微玩PrefetchCount
,然后确定哪个值可为您带来最佳性能。