如何通过Azure Service Bus REST API获取指定队列的消息总数
你要的获取指定队列消息总数的功能完全可以通过REST API实现,不需要依赖SDK。
实现方案
调用Service Bus队列的属性查询接口即可获取消息计数:
- 请求方法:
GET - 请求路径格式:
https://<你的命名空间>.servicebus.windows.net/<队列名称>?api-version=2021-05 - 认证要求:请求头需要携带合法的授权凭证,通常为Shared Access Signature生成的
Authorization头
接口返回的报文中countDetails字段下包含全量消息计数项,可按需取用:
activeMessageCount:正常待消费的活跃消息总数,也就是常规场景下的待消费消息量deadLetterMessageCount:死信队列存储的消息数scheduledMessageCount:设置了定时投递的待触发消息数transferMessageCount:待转移到其他队列/主题的消息数transferDeadLetterMessageCount:转移过程中进入死信的消息数
如果需要统计队列所有状态的总消息量,把以上几个字段的数值相加即可。注意该计数为服务端异步更新的近似值,存在秒级的延迟,适用于绝大多数非强一致实时计数的业务场景。
内容的提问来源于stack exchange,提问作者user2574948
相关产品推荐
相关产品推荐

