RabbitMQ Clustering High Availability & Failover

  • DevOps | CI | CD | Kubernetes | Web3

RabbitMQ Clustering High Availability & Failover

24 horas
Visão Geral

O curso RabbitMQ Clustering, High Availability & Failover foi desenvolvido para profissionais que precisam projetar, implementar, administrar e solucionar problemas em ambientes RabbitMQ distribuídos, com foco em clustering, alta disponibilidade, tolerância a falhas e continuidade operacional.

Durante o treinamento, os participantes irão construir um ambiente RabbitMQ com múltiplos nós, compreender a arquitetura de cluster, configurar mecanismos de replicação e disponibilidade, trabalhar com políticas de filas, testar cenários de falha e validar o comportamento do ambiente durante indisponibilidades.

O treinamento possui abordagem prática, utilizando laboratórios Hands-On para simular cenários próximos aos encontrados em ambientes corporativos.

Objetivo

Após realizar este curso RabbitMQ Clustering, High Availability & Failover, você será capaz de:

  • Compreender a arquitetura interna de um RabbitMQ Cluster
  • Diferenciar RabbitMQ standalone de RabbitMQ Cluster
  • Planejar uma arquitetura RabbitMQ altamente disponível
  • Instalar e configurar múltiplos nós RabbitMQ
  • Configurar um cluster RabbitMQ
  • Configurar descoberta e comunicação entre nós
  • Compreender Erlang Cookie e autenticação entre nós
  • Administrar membros de um cluster
  • Adicionar e remover nós do cluster
  • Compreender o comportamento de filas em ambientes distribuídos
  • Trabalhar com políticas de filas
  • Compreender quorum queues
  • Configurar estratégias de alta disponibilidade
  • Implementar cenários de failover
  • Simular falhas de nós
  • Recuperar nós RabbitMQ
  • Identificar problemas de conectividade entre nós
  • Monitorar a saúde do cluster
  • Utilizar RabbitMQ Management para administração
  • Utilizar comandos CLI para troubleshooting
  • Configurar HAProxy para acesso aos nós RabbitMQ
  • Implementar mecanismos de distribuição de conexões
  • Testar cenários de indisponibilidade
  • Planejar procedimentos de recuperação
  • Avaliar riscos de single point of failure
  • Desenvolver uma arquitetura RabbitMQ preparada para produção
Publico Alvo
  • Administradores Linux
  • Administradores RabbitMQ
  • Administradores de middleware
  • Engenheiros DevOps
  • Engenheiros de infraestrutura
  • Engenheiros de cloud
  • Arquitetos de soluções
  • Arquitetos de integração
  • Desenvolvedores de aplicações distribuídas
  • Profissionais de SRE
  • Profissionais de DevSecOps
  • Profissionais responsáveis por plataformas de mensageria
  • Profissionais responsáveis por ambientes de alta disponibilidade
Pre-Requisitos
  • Conhecimentos básicos de Linux
  • Conhecimentos básicos de redes TCP/IP
  • Conhecimentos básicos de administração de servidores
  • Conhecimentos fundamentais de RabbitMQ
  • Conhecimento de Exchanges, Queues, Bindings e Consumers
  • Conhecimentos básicos de linha de comando Linux
  • Conhecimentos básicos de DNS são recomendados
  • Conhecimentos básicos de virtualização são recomendados

Recomenda-se ter realizado previamente o curso RabbitMQ Foundation ou possuir conhecimentos equivalentes.

Materiais
Inglês/Português + Exercícios + Lab Pratico
Conteúdo Programatico

Módulo 1 — Arquitetura RabbitMQ e Alta Disponibilidade

  1. Arquitetura do RabbitMQ
  2. RabbitMQ Broker
  3. Erlang/OTP
  4. Nodes
  5. Connections
  6. Channels
  7. Exchanges
  8. Queues
  9. Bindings
  10. Virtual Hosts
  11. Producers
  12. Consumers
  13. Conceito de cluster
  14. Conceito de alta disponibilidade
  15. Conceito de failover
  16. Fault tolerance
  17. Single Point of Failure
  18. Active/Active
  19. Active/Passive
  20. RPO e RTO aplicados à mensageria

Laboratório 1 — Analisando um ambiente RabbitMQ

  1. Identificação dos componentes
  2. Identificação dos nós
  3. Identificação das conexões
  4. Identificação dos canais
  5. Análise da topologia inicial

Módulo 2 — Preparação do Ambiente

  1. Arquitetura do laboratório
  2. Requisitos de infraestrutura
  3. Configuração de hostname
  4. Configuração de DNS
  5. Configuração de IP
  6. Resolução de nomes
  7. Sincronização de horário
  8. Configuração de firewall
  9. Portas utilizadas pelo RabbitMQ
  10. Dependências do RabbitMQ
  11. Erlang/OTP
  12. RabbitMQ Server

Laboratório 2 — Preparando os nós

  1. Configuração do Node 1
  2. Configuração do Node 2
  3. Configuração do Node 3
  4. Configuração de hostname
  5. Configuração de resolução de nomes
  6. Testes de conectividade
  7. Validação dos serviços

Módulo 3 — Configuração de RabbitMQ Nodes

  1. Conceito de RabbitMQ Node
  2. Node Name
  3. Long Node Names
  4. Node Identity
  5. RabbitMQ Data Directory
  6. Erlang Cookie
  7. Comunicação entre nós
  8. Portas de comunicação
  9. Configuração de cluster
  10. Configuração de ambiente

Laboratório 3 — Configurando os RabbitMQ Nodes

  1. Configuração do primeiro nó
  2. Configuração do segundo nó
  3. Configuração do terceiro nó
  4. Configuração do Erlang Cookie
  5. Validação da comunicação
  6. Testes de conectividade entre os nós

Módulo 4 — RabbitMQ Cluster

  1. Conceito de RabbitMQ Cluster
  2. Arquitetura do cluster
  3. Cluster membership
  4. Disc nodes
  5. RAM nodes
  6. Adicionando nós ao cluster
  7. Removendo nós do cluster
  8. Verificando membros
  9. Recuperação de membros
  10. Reinicialização de nós
  11. Alteração da topologia

Laboratório 4 — Criando um RabbitMQ Cluster

Criar:

rabbit01
rabbit02
rabbit03

Executar:

  • Inicialização dos três nós
  • Configuração do Erlang Cookie
  • Criação do cluster
  • Adição dos nós
  • Validação do cluster
  • Consulta dos membros
  • Teste de comunicação

Comandos de administração:

rabbitmqctl cluster_status
rabbitmqctl status
rabbitmq-diagnostics status

Módulo 5 — Administração do Cluster

  1. Cluster status
  2. Cluster membership
  3. Node status
  4. Node health
  5. Maintenance mode
  6. Starting nodes
  7. Stopping nodes
  8. Resetting nodes
  9. Force reset
  10. Forgetting cluster nodes
  11. Recovery
  12. Troubleshooting de membership

Laboratório 5 — Administração

  • Parar um nó
  • Verificar o cluster
  • Iniciar o nó novamente
  • Remover um nó
  • Reintroduzir o nó
  • Simular corrupção de configuração
  • Recuperar o nó

Módulo 6 — Quorum Queues

  • Conceito de Quorum Queue
  • Raft
  • Replicação
  • Líder
  • Followers
  • Quorum
  • Majority
  • Eleição de líder
  • Disponibilidade
  • Durabilidade
  • Redundância
  • Replicação entre nós
  • Limitações e considerações
  • Quorum Queue versus Classic Queue

Laboratório 6 — Implementando Quorum Queues

Criar:

queue.orders

Tipo:

quorum

Executar:

  • Criar Queue
  • Publicar mensagens
  • Identificar líder
  • Identificar réplicas
  • Parar o nó líder
  • Observar eleição
  • Verificar disponibilidade
  • Publicar novas mensagens
  • Reiniciar o nó

Módulo 7 — High Availability

  • Conceitos de HA
  • Redundância
  • Replicação
  • Quorum
  • Failover
  • Node failure
  • Network failure
  • Application failure
  • Storage failure
  • Estratégias de disponibilidade
  • HA em ambientes RabbitMQ
  • Availability versus Durability

Laboratório 7 — Testando High Availability

Simular:

  • Falha do Node 1
  • Falha do Node 2
  • Falha de conexão
  • Perda de rede
  • Recuperação do nó
  • Recuperação do serviço
  • Verificação das mensagens

Módulo 8 — Failover

  • Conceito de failover
  • Failover automático
  • Failover de conexão
  • Failover de aplicação
  • Reconexão
  • Recovery
  • Client recovery
  • Connection recovery
  • Channel recovery
  • Topology recovery
  • Estratégias de reconexão

Laboratório 8 — Simulação de Failover

Executar:

Producer
   |
   v
RabbitMQ Node 1
   |
   +------ Node 2
   |
   +------ Node 3

Simular:

  • Queda do Node 1
  • Reconexão do Producer
  • Reconexão do Consumer
  • Recuperação do Node 1
  • Validação da aplicação

Módulo 9 — HAProxy e RabbitMQ

  • Conceito de Load Balancer
  • HAProxy
  • Frontend
  • Backend
  • Health Check
  • Balanceamento
  • Failover
  • RabbitMQ e HAProxy
  • Estratégias de distribuição
  • Detecção de nós indisponíveis

Laboratório 9 — Configurando HAProxy

Arquitetura:

                    HAProxy
                       |
             +---------+---------+
             |         |         |
             v         v         v
          Rabbit01  Rabbit02  Rabbit03

Executar:

  • Instalar HAProxy
  • Configurar frontend
  • Configurar backend
  • Configurar health check
  • Testar conexão
  • Derrubar Rabbit01
  • Validar failover
  • Derrubar Rabbit02
  • Validar novamente

Módulo 10 — Network Partition e Troubleshooting

  • Network partition
  • Split brain
  • DNS failure
  • Firewall
  • Erlang Cookie
  • Node name
  • Portas
  • Authentication
  • Cluster membership
  • Logs
  • Diagnostics
  • Disk space
  • Memory pressure
  • File descriptors
  • Connection problems

Laboratório 10 — Troubleshooting

Simular:

  • Erlang Cookie incorreto
  • DNS incorreto
  • Firewall bloqueando comunicação
  • Node Name incorreto
  • Porta bloqueada
  • Node indisponível
  • Problema de sincronização
  • Recuperação do cluster

Módulo 11 — Monitoramento do Cluster

  • RabbitMQ Management
  • Cluster overview
  • Nodes
  • Queues
  • Connections
  • Channels
  • Consumers
  • Message rates
  • Memory
  • Disk
  • File descriptors
  • Alarms
  • Health checks
  • CLI diagnostics
  • Logs

Laboratório 11 — Monitoramento

Executar:

rabbitmq-diagnostics status
rabbitmq-diagnostics alarms
rabbitmq-diagnostics check_running
rabbitmq-diagnostics check_local_alarms
rabbitmq-diagnostics listeners

Avaliar:

  • Saúde dos nós
  • Alarmes
  • Memória
  • Disco
  • Connections
  • Channels
  • Queues
  • Consumers

Módulo 12 — Segurança em Cluster

  • Authentication
  • Authorization
  • Users
  • Virtual Hosts
  • Permissions
  • TLS
  • Certificates
  • Node-to-node communication
  • Client-to-node communication
  • Security hardening
  • Firewall

Laboratório 12 — Segurança

  • Criar usuário
  • Configurar permissões
  • Criar Virtual Host
  • Configurar TLS
  • Validar conexão segura
  • Testar acesso autorizado
  • Testar acesso não autorizado

Módulo 13 — Backup e Disaster Recovery

  • Backup
  • Restore
  • Configuration backup
  • Definitions
  • Cluster recovery
  • Disaster Recovery
  • RPO
  • RTO
  • Recovery procedures
  • Estratégias de recuperação
  • Disaster Recovery Planning

Laboratório 13 — Recovery

  • Exportar definições
  • Simular perda de um nó
  • Recuperar o nó
  • Restaurar configuração
  • Validar usuários
  • Validar Exchanges
  • Validar Queues
  • Validar Bindings

Módulo 14 — Projeto Final

Cenário

Uma empresa possui uma plataforma de pedidos baseada em RabbitMQ.

A arquitetura deverá possuir:

                       HAProxy
                          |
              +-----------+-----------+
              |           |           |
              v           v           v
           Node 01     Node 02     Node 03
              |           |           |
              +-----------+-----------+
                          |
                     Applications

Requisitos

  • Cluster com três nós
  • Quorum Queue
  • Producer
  • Consumer
  • HAProxy
  • Health Check
  • Failover
  • Monitoramento
  • TLS
  • Usuários e permissões
  • Backup das definições

Testes obrigatórios

O aluno deverá demonstrar:

Teste 1 — Operação normal

Todos os nós funcionando.

Teste 2 — Falha do Node 1

O serviço deverá continuar disponível.

Teste 3 — Falha do Node 2

O serviço deverá continuar disponível.

Teste 4 — Recuperação

O Node 1 deverá retornar ao cluster.

Teste 5 — Falha simultânea

Avaliar o comportamento quando a maioria dos nós fica indisponível.

Teste 6 — Network Failure

Simular perda de comunicação entre os nós.

Teste 7 — Troubleshooting

Identificar e corrigir uma falha propositalmente introduzida pelo instrutor.


Projeto Final — Entregáveis

Ao final do laboratório, o aluno deverá entregar:

  • Diagrama da arquitetura
  • Configuração do cluster
  • Configuração das Queues
  • Configuração do HAProxy
  • Estratégia de failover
  • Estratégia de monitoramento
  • Estratégia de backup
  • Procedimento de recuperação
  • Evidências dos testes de falha
  • Relatório final do ambiente
TENHO INTERESSE

Cursos Relacionados

Curso Terraform Deploying to Oracle Cloud Infrastructure

24 Horas

Ansible Overview of Ansible architecture

16h

Curso HashiCorp Certified Vault Associate

24 horas

Curso HashiCorp Certified Consul Associate

40 horas

Curso OpenClaw Install Build & Deploy Real AI Agents

40 horas

Curso AUTOSAR Architecture Learn from Scratch with Demo

32 horas Curso Pratico

Curso Introduction to Container Storage

24 horas