RABBITMQ - Mensageria com RabbitMQ
O que é este Node?
O RABBITMQ é o node responsável por enviar e receber mensagens através do sistema de mensageria RabbitMQ para comunicação assíncrona entre sistemas.
Por que este Node existe?
Sistemas distribuídos precisam comunicar de forma assíncrona e desacoplada. O RABBITMQ existe para:
- Comunicação Assíncrona: Enviar mensagens sem esperar resposta
- Desacoplamento: Separar sistemas produtores de consumidores
- Filas Confiáveis: Garantir entrega de mensagens
- Escalabilidade: Processar mensagens em paralelo
Como funciona internamente?
async executeRabbitMQ(data: any, variables: Record<string, any>): Promise<any> {
try {
this.logger.log('🐰 [RabbitMQ] Executing operation');
return {
success: true,
operation: data.operation,
queue: data.queue,
message: 'RabbitMQ operation completed successfully',
};
} catch (error) {
this.logger.error('RabbitMQ execution error:', error);
throw error;
}
}
Parâmetros
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| operation | string | Sim | publish/consume/ack |
| queue | string | Sim | Nome da fila |
| message | string | Não | Mensagem a enviar |
| routingKey | string | Não | Chave de roteamento |
Resposta do Node
{
"success": true,
"operation": "publish",
"queue": "orders",
"message": "RabbitMQ operation completed successfully"
}
Boas Práticas
✅ SIM: Usar filas duráveis, Confirmar mensagens (ack), Tratar erros ❌ NÃO: Perder mensagens por falta de ack, Criar filas temporárias, Ignorar dead letters
Próximos Nodes
→ REDIS - Cache e pub/sub com Redis → KAFKA - Streaming com Kafka