🐰 KEDA com RabbitMQ: Autoscaling baseado em filas no Kubernetes

Meta descrição:
Aprenda como usar KEDA com RabbitMQ para autoscaling baseado em filas no Kubernetes, escalando aplicações de forma eficiente e econômica.


🚀 KEDA com RabbitMQ: o que é e por que usar?

O KEDA com RabbitMQ é uma abordagem poderosa para escalar aplicações no Kubernetes com base em eventos, como mensagens em filas. O KEDA (Kubernetes Event-Driven Autoscaling) permite que aplicações escalem automaticamente conforme a demanda real.

Quando integrado com o RabbitMQ, você consegue escalar consumidores de fila dinamicamente, garantindo performance e evitando desperdício de recursos.

⚙️ Como funciona o KEDA com RabbitMQ?

O fluxo do KEDA com RabbitMQ é baseado em eventos:

  1. Mensagens chegam na fila do RabbitMQ
  2. O KEDA monitora o tamanho da fila
  3. Quando o limite é atingido, ele escala os pods
  4. Quando a fila diminui, ele reduz automaticamente

Isso permite um autoscaling mais inteligente que o HPA tradicional.

🧩 Componentes principais

Para usar KEDA com RabbitMQ, você precisa de:

  • Cluster Kubernetes (ex: Amazon EKS)
  • KEDA instalado no cluster
  • RabbitMQ rodando (interno ou externo)
  • Deployment da aplicação consumidora

📦 Instalando o KEDA

A forma mais simples é via Helm:

helm repo add kedacore https://kedacore.github.io/charts
helm repo update
helm install keda kedacore/keda –namespace keda –create-namespace


🐰 Configurando RabbitMQ

Você pode usar um RabbitMQ já existente ou subir um no cluster. Exemplo simples:

kubectl create deployment rabbitmq –image=rabbitmq:3-management
kubectl expose deployment rabbitmq –port=5672 –target-port=5672


⚙️ Criando o ScaledObject

O coração do KEDA com RabbitMQ é o ScaledObject:

apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
name: rabbitmq-consumer
spec:
scaleTargetRef:
name: consumer-app
minReplicaCount: 1
maxReplicaCount: 10
triggers:
- type: rabbitmq
metadata:
queueName: my-queue
host: amqp://guest:guest@rabbitmq:5672/
queueLength: "5"

🧠 Como funciona o scaling?

No exemplo acima:

  • Se houver mais de 5 mensagens na fila, o KEDA começa a escalar
  • Ele pode chegar até 10 pods
  • Quando a fila zera, ele reduz automaticamente

Isso garante eficiência e economia.


💡 Benefícios do KEDA com RabbitMQ

1. Escala baseada em eventos

Não depende de CPU/memória, mas sim da real demanda.

2. Redução de custos

Escala para zero quando não há mensagens.

3. Alta performance

Responde rapidamente a picos de carga.

4. Simplicidade

Configuração direta e fácil de entender.


⚠️ Boas práticas

  • Defina corretamente o queueLength
  • Use autenticação segura no RabbitMQ
  • Monitore métricas de fila
  • Configure limites de scaling

🧠 Quando usar KEDA com RabbitMQ?

Use quando:

  • Sua aplicação consome filas
  • Há variação de carga (picos)
  • Você quer escalar automaticamente
  • Precisa reduzir custos

🏁 Conclusão

O KEDA com RabbitMQ é uma solução eficiente para autoscaling baseado em eventos no Kubernetes. Ele complementa ferramentas como o Kubernetes, trazendo mais inteligência ao processo de escala.

Se você já trabalha com filas, essa é uma das formas mais modernas de escalar suas aplicações.

Quer uma solução personalizada para seu negócio?

Nossos especialistas em cloud computing analisam seu caso e criam uma estratégia sob medida.

Compartilhe essa publicação
Sobre o autor
Foto de Emanuel Teixeira

Emanuel Teixeira

Técnico KXC Tecnologia

Ver perfil e posts