Автоматическое масштабирование развернутых узлов AKS на основе количества сообщений в служебной шине Azure.
Как я могу получить количество необработанных сообщений из очередей служебной шины Azure и на основе этого количества автоматически масштабировать узлы, развернутые в Azure Kubernetes Services?
Мне удалось получить одну из ссылок, которая использует Azure Monitor для получения количества сообщений в очереди и с помощью масштабирования конфигурации HPA вверх / вниз.
Есть ли другой способ получить количество сообщений в очереди служебной шины 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
клиентская библиотека для масштабирования реплик развертывания вверх / вниз.