Автоматическое масштабирование развернутых узлов AKS на основе количества сообщений в служебной шине Azure.

Как я могу получить количество необработанных сообщений из очередей служебной шины Azure и на основе этого количества автоматически масштабировать узлы, развернутые в Azure Kubernetes Services?

Мне удалось получить одну из ссылок, которая использует Azure Monitor для получения количества сообщений в очереди и с помощью масштабирования конфигурации HPA вверх / вниз.

https://ferhatvurucu.medium.com/queue-based-scaling-on-azure-kubernetes-service-aks-with-helm-e1d579cd77c3

Есть ли другой способ получить количество сообщений в очереди служебной шины Azure с помощью кода Java или без использования монитора? Спасибо, если кто-нибудь может предоставить ссылки, чтобы узнать больше об этом.

1 ответ

В идеале мониторинг - лучший вариант здесь, если вы используете мониторинг AKS или Prometheus для проверки размера очереди и масштабирования количества POD с помощью HPA.

Вот один хороший пример того же сценария с очередью 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 клиентская библиотека для масштабирования реплик развертывания вверх / вниз.

Другие вопросы по тегам