You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取Azure Service Bus队列未处理消息数以自动扩缩容AKS节点

Azure Service Bus队列未处理消息数获取方案(非Azure Monitor方式)

除了Azure Monitor外,你可以通过以下几种方式获取队列未处理消息数:

  • 调用Azure Service Bus官方REST API:携带Azure AD令牌或共享访问签名(SAS)令牌向Service Bus资源端点发起GET请求,返回的队列运行时属性中activeMessageCount字段即为未处理的活跃消息数。
  • 使用Azure官方多语言SDK:包括Java、Python、C#等在内的官方SDK都封装了队列属性查询能力,无需手动处理鉴权和请求拼接逻辑。
  • 借助Azure CLI查询:执行az servicebus queue show命令并指定命名空间、队列名等参数,即可直接返回包含活跃消息数的结果,适合脚本自动化场景使用。

Java代码实现示例

你可以直接使用Azure官方提供的Java SDK实现消息数查询,步骤如下:

  1. 引入Maven依赖
<dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-messaging-servicebus</artifactId>
    <version>7.17.0</version>
</dependency>
  1. 核心查询代码
import com.azure.messaging.servicebus.administration.ServiceBusAdministrationClient;
import com.azure.messaging.servicebus.administration.ServiceBusAdministrationClientBuilder;
import com.azure.messaging.servicebus.administration.models.QueueRuntimeProperties;

public class ServiceBusMessageCountQuery {
    public static void main(String[] args) {
        // 替换为你的Service Bus命名空间连接字符串
        String serviceBusConnStr = "Endpoint=sb://<your-namespace>.servicebus.windows.net/;SharedAccessKeyName=<key-name>;SharedAccessKey=<key-value>";
        // 替换为目标队列名称
        String targetQueueName = "<your-queue-name>";

        // 初始化管理客户端
        ServiceBusAdministrationClient adminClient = new ServiceBusAdministrationClientBuilder()
                .connectionString(serviceBusConnStr)
                .buildClient();

        // 查询队列运行时属性
        QueueRuntimeProperties queueProps = adminClient.getQueueRuntimeProperties(targetQueueName);
        // 获取未处理活跃消息数
        long unprocessedMsgCount = queueProps.getActiveMessageCount();
        System.out.println("队列未处理消息数:" + unprocessedMsgCount);
    }
}

生产环境建议使用AKS Pod托管身份完成鉴权,避免硬编码连接字符串引发的密钥泄露风险。如果需要基于该指标实现AKS扩缩容,可以将上述逻辑封装为自定义指标接口对接Kubernetes自定义指标API,再配合HPA实现自动扩缩容即可。

内容的提问来源于stack exchange,提问作者Deepthi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 19:06:03