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:
- Mensagens chegam na fila do RabbitMQ
- O KEDA monitora o tamanho da fila
- Quando o limite é atingido, ele escala os pods
- 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.


