我如何从 Azure 服务总线队列中获取未处理的消息计数,并根据计数自动缩放部署在 Azure Kubernetes 服务上的节点?
我能够获得使用 Azure Monitor 来获取队列中的消息计数并使用 HPA 配置向上/向下扩展的链接之一。
有没有其他方法可以使用 Java 代码或不使用监视器来获取 Azure 服务总线队列中的消息计数?如果有人可以提供链接以了解更多信息,请不胜感激。
我如何从 Azure 服务总线队列中获取未处理的消息计数,并根据计数自动缩放部署在 Azure Kubernetes 服务上的节点?
我能够获得使用 Azure Monitor 来获取队列中的消息计数并使用 HPA 配置向上/向下扩展的链接之一。
有没有其他方法可以使用 Java 代码或不使用监视器来获取 Azure 服务总线队列中的消息计数?如果有人可以提供链接以了解更多信息,请不胜感激。
理想情况下,如果您使用AKS 监控或Prometheus来检查队列大小并使用 HPA 缩放 POD 数量,则监控是最佳选择。
这是使用 RabbitMQ 队列并使用Prometheus
自定义指标的相同场景的一个很好的示例。https://ryanbaker.io/2019-10-07-scaling-rabbitmq-on-k8s/
但是,如果您正在寻找使用 Java 或任何其他代码的自定义解决方案,您可以实现它。
这是GetMessage 计数器:https ://docs.microsoft.com/en-us/azure/service-bus-messaging/message-counters
返回的 MessageCountDetails 对象具有以下属性:ActiveMessageCount
、DeadLetterMessageCount
、ScheduledMessageCount
、TransferDeadLetterMessageCount
、TransferMessageCount
。
一些 java 示例:https ://docs.microsoft.com/en-us/samples/azure/azure-sdk-for-java/servicebus-samples/
这只会为您提供进一步扩展副本的消息计数,您可能必须使用K8s
客户端库来扩展/缩减部署副本。