Clusterização de banco de dados com MySQL e MariaDB automática
A clusterização de banco de dados é um requisito obrigatório para aplicativos de produção altamente carregados para garantir a disponibilidade de dados e o alto desempenho. No entanto, a configuração de um cluster confiável não é uma tarefa trivial, mesmo para desenvolvedores experientes e administradores de sistema.
Para resolver esse problema, a Jelastic introduziu o armazenamento em cluster pronto para MariaDB e MySQL para tornar os aplicativos altamente disponíveis por padrão.
A solução implementada fornece um conjunto de benefícios:
- alta disponibilidade com opções de replicação pré-configuradas – Master-Slave, Master-Master, Galera, Replicação de Grupo Simples e Multi-Principal
- escalabilidade e descoberta automática – novos nós, adicionados durante o dimensionamento horizontal , são conectados ao cluster com todos os ajustes necessários sendo aplicados automaticamente
- Balanceamento de carga eficiente – cada cluster é complementado com dois nós ProxySQL para balanceamento de carga com divisão automática de solicitações de leitura / gravação
- failover automatizado – os nós do banco de dados que estão temporariamente indisponíveis ou possuem alta latência são automaticamente excluídos do cluster e adicionados novamente quando a conexão é restaurada
Todos esses benefícios podem ser alcançados com apenas alguns cliques em um assistente de topologia. Explore as etapas abaixo para ativar o armazenamento em cluster automático para seus bancos de dados MariaDB e MySQL no Jelastic PaaS.
Ativar a clusterização automática para bancos de dados
Clique em NEW ENVIRONMENT no painel e escolha MariaDB ou banco de dados MySQL:
Ative o botão Auto-Clustering . Como resultado, uma lista suspensa com diferentes esquemas de replicação aparecerá:
- MariaDB – Master-Slave, Master-Master e Galera
- MySQL – Master-Slave, Master-Master, Replicação de Grupo Simples ou Multi-Principal
Escolha o tipo de replicação de sua preferência e clique em Criar . Isso é tudo! Nenhuma configuração é necessária, o cluster está pronto para trabalhar.
Após a instalação bem-sucedida, você receberá vários e-mails com as informações da clusterização:
- Interface de administração web PHP MyAdmin at Master Node com credenciais para acessar o servidor de banco de dados para gerenciamento interativo.
- Ponto de entrada para conexões ao cluster MySQL – nome do host e credenciais para conectar um aplicativo ao cluster de banco de dados. No Jelastic, cada solução de clusterização automática do MariaDB / MySQL possui dois nós ProxySQL na frente do cluster do banco de dados. Esses nós formam uma camada extra de proxy referida como o ponto de entrada para o cluster de banco de dados com o nome do host da seguinte maneira: proxy. $ {EnvName}. $ {PlatformDomain} .
- Painel do orquestrador MySQL – credenciais para acessar o painel do orquestrador, destinado ao gerenciamento conveniente do cluster
Use as credenciais recebidas para acessar o painel de administração do orquestrador de cluster instalado no ProxySQL, que fornece a possibilidade de revisar as informações de topologia do cluster: visualização de topologias, problemas de replicação se houver, distribuição de leitura / gravação, check-ups de estado de integridade e autodiscovery de nós de banco de dados recentemente adicionados, etc.
Qual tipo de replicação escolher?
Vamos considerar os detalhes sobre cada esquema de replicação disponível para bancos de dados no Jelastic para entender qual deles é o mais adequado para as necessidades específicas e casos de uso.
Master-Slave MariaDB / MySQL Replication
A replicação mestre-escravo é a topologia usada mais comum, que fornece uma boa consistência (ou seja, exatamente um nó para modificar dados), mas nenhum failover automático em caso de falha do mestre. Uma latência de gravação na replicação assíncrona é baixa porque a gravação é registrada localmente pelo servidor mestre antes de gravar nos servidores escravos. Ele permite dimensionar as leituras, fornecendo o mais alto desempenho, já que a adição de mais réplicas não afeta a latência da replicação. Os escravos podem ser lidos sem impacto no mestre, fornecendo vantagens óbvias como:
- Alto desempenho para solicitações de leitura
- Backup de banco de dados pode ser feito sem impacto na instância mestre
- Solicitações analíticas podem carregar a instância do escravo somente sem afetar o mestre
- A instância escrava pode ser removida do cluster e retornada com a captura de dados da instância mestre subsequente sem tempo de inatividade do banco de dados
Master-Master MariaDB / MySQL Replication
A replicação assíncrona Master-master opera com dois nós mestres simultaneamente. Comparada à solução mestre-escravo padrão , ela se beneficia do balanceamento da carga de escrita e da recuperação mais simples em uma falha do nó mestre.
Em contraste com as configurações padrão, no escalonamento de cluster mestre-mestre de Jelastic leva à adição de escravos ao cluster. Na criação, as instâncias escravas são igualmente distribuídas entre os nós principais que permitem distribuir a carga de trabalho de replicação sem problemas e aumentar a capacidade de leituras do cluster.
Replicação de Grupo do MySQL (MGR)
O mecanismo MySQL Group Replication é implementado por um plug-in do MySQL Server que fornece replicação de máquinas de estado distribuído com forte coordenação entre servidores. A Replicação de Grupo permite criar sistemas tolerantes a falhas com redundância, replicando o estado do sistema em um conjunto de servidores. Consequentemente, mesmo que alguns dos servidores falhem (desde que não seja a maioria), o cluster ainda estará disponível. Assim, os servidores se coordenam automaticamente quando fazem parte do mesmo grupo. Quando o novo servidor, que (re) se junta ao grupo, será automaticamente sincronizado com os outros membros do grupo.
De acordo com a documentação oficial do MySQL, se um nó do servidor falhar e for removido do cluster, ele retornará manualmente, mas no Jelastic, ele será automaticamente retornado ao cluster na disponibilidade do nó do servidor.
Além disso, você deve considerar que a replicação de grupo do MySQL suporta até 9 membros , enquanto qualquer solicitação de junção subsequente será automaticamente recusada.
Replicação de grupo primário único
O grupo pode operar em um modo primário único, em que um membro do grupo é emitido com permissões de leitura / gravação (ou seja, configurado como primário), enquanto os membros restantes são configurados para somente leitura agindo como o hot standby. Com isto, no caso da falha primária, uma eleição automática será realizada para atribuir uma nova.
Replicação de Grupo Multi-Primário
Como alternativa, o grupo pode ser implantado no modo multi-primário que compartilha todos os detalhes do MGR descritos no modo primário único, mas todos os membros do cluster são fornecidos com permissões de leitura / gravação e podem aceitar atualizações, mesmo se forem emitidas ao mesmo tempo . Tal implementação fornece benefícios de gravação simultânea em diferentes servidores MySQL e não requer tempo para eleger e preparar o novo primário (após falha de um anterior).
MariaDB Galera
O cluster Galera é um tipo de replicação síncrona multi-mestre que é executada em um tempo de confirmação de transação, transmitindo o conjunto de gravação de transação para todos os nós do cluster para aplicação e garante que a gravação enviada a todos os nós no cluster antes dessa gravação seja realmente comprometido.
Um aplicativo de usuário pode enviar leituras e gravações para qualquer nó no cluster, o que fornece uma capacidade de dimensionar as transações de leitura e gravação. A adição de nós a um cluster é totalmente automatizada.
A exclusão de nós do cluster é apenas uma questão de remover os desnecessários ou os que falharam. Não há mais necessidade de implementar a lógica volumosa para separação de leituras e gravações, o potencial de dimensionamento pode ser imediatamente implementado sem a necessidade de alterar a lógica do aplicativo.
O Galera oferece uma das melhores proteções contra perda de dados e bancos de dados inconsistentes, já que não há atraso na replicação de dados. Se um dos nós do cluster falhar, o aplicativo de usuário não o verá e continuará a servir os usuários usando os outros nós que também podem estar localizados em outros data centers.
Nos próximos artigos, vamos nos aprofundar nas especificidades de cada implementação de cluster automático de banco de dados.
Portanto, fique atento e não hesite em experimentar a funcionalidade de clusterização de banco de dados em um dos provedores de serviço Jelastic com versão de plataforma 5.5.3 ou superior.
Conheça mais detalhes da clusterização de banco de dados por meio da tecnologia internacional da SaveinCloud. Teste grátis por 14 dias!