IBM Cloud Docs
Alta Disponibilidade

Alta Disponibilidade

O IBM Cloud® Messages for RabbitMQ é um serviço de mensagens em nuvem gerenciado que é totalmente integrado aos ambientes da IBM Cloud. O message broker, o armazenamento e a infraestrutura de suporte são todos executados na IBM Cloud.

Configuração do cluster do RabbitMQ

O Messages for RabbitMQ fornece recursos de replicação, de failover e de alta disponibilidade para proteger os seus bancos de dados e dados de manutenção de infraestrutura, upgrades e falhas. As implementações contêm um cluster com três nós nos quais os usuários, os hosts virtuais, as filas, as trocas, as ligações, os parâmetros de tempo de execução e outros estados distribuídos são compartilhados por todos os três nós. Se um nó falhar, o nó será excluído ou reiniciado e, em seguida, ele ou um novo nó será ressincronizado para o cluster. Sua implementação permanece disponível para processar mensagens durante a ressincronização, apesar de ser um processo intensivo de memória. Para obter mais informações, consulte a página Desempenho .

RabbitMQ

Como um intermediário de mensagens implementado em Erlang, o RabbitMQ é profundamente dependente de núcleos de CPU para programar seus processos. Se poucos núcleos estiverem disponíveis para executar esses processos, o desempenho pode sofrer. Se poucos recursos da CPU estiverem disponíveis para processá-los, o RabbitMQ fecha conexões. Considere cpu-contenção e escolha uma configuração de recurso que forneça núcleos de CPU suficientes para o RabbitMQ funcionando como um sistema de produção. Ter recursos dedicados à CPU em sua implementação do RabbitMQ também impede o impacto de vizinhos barulhentos em recursos, como CPU e memória.

Configuração de fila de alta disponibilidade

O host virtual padrão é configurado para espelhar suas filas em todos os nós no cluster para fornecer alta disponibilidade.. A alta disponibilidade em RabbitMQ é definida por policy. Você pode visualizar a política no RabbitMQ Management UI, na API HTTPS ou rabbitmqadmin quando você faz login com a conta admin.

Página de políticas doRabbitMQ
Figura 1. Página de políticas do RabbitMQ

É possível modificar a alta disponibilidade incluindo uma política e configurando-a com uma prioridade maior, mas a política padrão não pode ser removida. Quaisquer hosts virtuais adicionais não têm uma política de alta disponibilidade configurada por padrão. É necessário incluir uma política de alta disponibilidade a todos os seus hosts virtuais.

Filas de quorum

A alta disponibilidade pode ser gerenciada com filas quorum. Usar filas de quorum pode melhorar significativamente a alta disponibilidade de uma implementação, especificamente nos casos em que as filas existem a longo prazo e sua durabilidade é mais importante do que outras características. As filas de quorum gerenciam a alta disponibilidade mantendo um quorum que usa o algoritmo de consenso Raft e o primário atual e a maioria das réplicas concorda com os conteúdos da fila. Se algo acontecer com o nó primário, as réplicas elegerão o próximo primário.

A RabbitMQ Documentation abrange os casos de usoe como implementar filas de quorum em seu cluster

Filas espelhadas

Enquanto as filas de quorum são preferenciais, a configuração padrão no RabbitMQ 4 e anterior usa filas espelhadas. As filas espelhadas são configuradas com cada fila contendo um primário em um membro do cluster e os espelhos das filas existem nos demais membros do cluster. As mensagens publicadas na fila primeiro acessam o primário e, em seguida, são replicadas para os espelhos. Se algo acontecer com o nó primário, o espelho sincronizado mais antigo será promovido a primário.

Alta disponibilidade para o seu aplicativo

Os aplicativos que se comunicam sobre redes e serviços de nuvem estão sujeitos a falhas de conexão temporárias. Além disso, como o Messages for RabbitMQ é um serviço gerenciado, as atualizações regulares e a manutenção de banco de dados ocorrem como parte de operações normais. Essas operações podem causar uma pequena falha na conectividade. Portanto, também é possível ver uma curta interrupção de conexão.

Você deseja projetar os seus aplicativos para lidarem com uma perda temporária na conectividade com a sua implementação ou com a IBM Cloud.

A documentação do RabbitMQ tem uma visão geral de quais tipos de coisas podem ser feitas para ajudar a tornar seus aplicativos robustos e estáveis na Lista de verificação de produção, na seção Aplicativos. Ela inclui algum aviso geral de gerenciamento e recuperação de conexão.

O RabbitMQ e os drivers do RabbitMQ suportam vários recursos para ajudá-lo a projetar um aplicativo resiliente.

Messages for RabbitMQ também vem com o Shovel plug-in. Os shovels podem manipular mensagens de conexão, leitura e composição, bem como a falha na conexão e a nova publicação.

Vários minutos de indisponibilidade de banco de dados ou de interrupção de conexão não são esperados. Abra um chamado de suporte com detalhes se você tiver períodos de tempo mais longos do que um minuto sem conectividade para que possamos investigar.

Limites de conexão do Messages for RabbitMQ

No fornecimento, o Messages for RabbitMQ possui quatro terminais diferentes e configura o número máximo de conexões por nó e para cada terminal da seguinte forma:

  • HTTPS: 1024 x 3 nós = 3072
  • AMQPS: 20.000 x 3 nós = 60.000
  • MQTTS: 20.000 x 3 nós = 60.000
  • STOMPS: 20.000 x 3 nós = 60.000

Se o número de conexões com o banco de dados exceder o limite de conexão, novas conexões falharão e retornarão um erro.

Monitoramento para alta disponibilidade

O Messages for RabbitMQ tem a integração do IBM Log Analysis para que seja possível visualizar logs em tempo real e históricos.

Verificar os logs de sua implementação o ajuda a monitorar o estado de alta disponibilidade e a replicação para a sua implementação. Se você estiver tendo problemas persistentes com os seus aplicativos, os logs também poderão fornecer insight para o que acontecerá em seus bancos de dados quando você estiver tendo falhas na conexão ou outras interrupções.

Guia de confiabilidade do RabbitMQ

A documentação do RabbitMQ fornece um excelente Guia de Confiabilidade que abrange uma ampla variedade de tópicos relacionados a certificar-se de que seu cluster está funcionando e seus dados são resilientes. Ela também abrange recursos que estão disponíveis para você como um usuário para monitorar a implementação, as conexões, as filas e as mensagens para assegurar operações suaves.

Recursos de alta disponibilidade, recuperação de desastre e de SLA

As implementações do Messages for RabbitMQ estão em conformidade com os termos HA, DR e SLA dos IBM Cloud Databases.