c# - 如何获取从 MessagingFactory Azure 创建的接收器数量的详细信息
问题描述
我看过一些类似下面建议计算 PrefetchCount 的文章。
当使用 60 秒的默认锁到期时,SubscriptionClient.PrefetchCount 的一个好的值是工厂所有接收器的最大处理速率的 20 倍。例如,一个工厂创建了 3 个接收器,每个接收器每秒最多可以处理 10 条消息。预取计数不应超过 20*3*10 = 600。
但是我仍然对以下事情一无所知,
- 如何获取工厂创建的接收器计数?
- 如何获取Receiver处理的消息数量的详细信息?
提前致谢。
解决方案
接收器是在您的代码中创建的,因此您应该知道您拥有多少个接收器。
但这并不重要。您只需要知道一秒钟内(每个工厂)总共可以处理多少条消息。您可以为此添加自定义性能计数器,或仅使用一个工厂运行测试并查看门户中的 Azure Monitor 统计信息。
如果您ReceiveBatch
显式调用,请确保设置PrefetchCount
为高于批量大小的值。高多少 - 取决于您的时间,但目标是在任何调用ReceiveBatch
.
最后,我应该建议这个建议是近似的,您不必完全遵循公式。稍微玩PrefetchCount
一下,确定哪个值可以为您提供最大性能。
推荐阅读
- python - 在pyqtgraph中动态旋转TextItem
- excel - 变量超出范围或无法识别
- flask - Jinja2 调试
- python - 如何将列表旋转到python3中给定的位置?
- ffmpeg - ffmpeg 处理输入时发现无效数据
- angular - 删除使用 btn-outline-dark 的 ngbDropDown 的焦点背景颜色
- php - MongoDB 对象中的数组字段被 Doctrine 返回为空,尽管它在 DB 中不为空
- c++ - C++ | 此声明没有存储类或类型说明符 VS Code 1.34.0
- jmeter - 具有多个条件的JMeter _jexl3函数
- android - 从 viewmodel 回调到没有数据的 ui