Continuando conosco, construímos a arquitetura de replicação mestre-escravo do Mysql. Hoje apresentaremos três métodos de replicação mestre-escravo, que também serão solicitados com frequência durante a entrevista:
Replicação síncrona
A replicação síncrona significa que após a biblioteca principal confirmar a transação, o binlog foi transmitido para o relay log da biblioteca escrava através do encadeamento de despejo. A biblioteca principal precisa aguardar a confirmação de envio da biblioteca escrava. Após a reprodução ser concluída , a biblioteca escrava responderá um ACK à biblioteca principal. A biblioteca principal então termina de esperar e executa as operações subsequentes. Nota: Se houver vários nós escravos neste momento, mais tempo a biblioteca principal irá esperar, então é necessário definir um tempo de espera de tempo limite.
Replicação assíncrona
Modo de replicação assíncrona a fim de resolver o problema do longo tempo de espera da biblioteca principal, retornará para confirmar o cancelamento, e é quando a biblioteca principal finalizou a transação é confirmada, sem esperar a confirmação da biblioteca para enviar, na implementação das operações de acompanhamento retornadas diretamente ao cliente;
mas isso causará o problema: quando o host envia a transação e desliga, mas neste momento o binlog não foi sincronizado com a biblioteca escrava, se o mestre-escravo a troca for forçada, os novos dados da biblioteca mestre estarão incompletos
Replicação semissíncrona
O método semissíncrono é um compromisso entre os métodos de replicação síncrona e assíncrona: a
mesma biblioteca principal ainda precisa aguardar a confirmação da biblioteca escrava antes de realizar as operações subsequentes, mas a diferença é que desta vez não está esperando pelo escravo biblioteca para enviar a transação antes de enviar A notificação de confirmação é enviada para a biblioteca principal, mas quando a biblioteca escrava grava o binlog no relaylog, ela envia uma notificação de confirmação para a biblioteca principal. Isso não só reduz o tempo de espera, mas também mantém a segurança dos dados
Replicação semissíncrona aprimorada
No caso de replicação semissíncrona, se houver tal situação: após a biblioteca principal submeter a transação, ela começa a aguardar o retorno da gravação do relé da biblioteca escrava. Se a biblioteca escrava tiver um acidente neste momento (ele pode ser roubado), o mestre O tempo limite de espera da biblioteca, desta vez, a biblioteca principal irá encerrar diretamente a espera, porque a transação foi enviada, o usuário pode definitivamente ver os dados não sincronizados, a fim de resolver este problema, mysql5.7 introduzido replicação semissíncrona aprimorada:
somente quando Depois de receber pelo menos uma confirmação de gravação do relay log retornada da biblioteca, a transação é enviada, o que significa que a transação é confirmada após o recebimento da confirmação
Wechat search for a search [Le Zai open talk] Siga o bonito eu, responda [Receber produtos secos], haverá muitos materiais de entrevista e livros de leitura obrigatória para arquitetos esperando por você para escolher, incluindo java básico, java simultaneidade, microsserviços, middleware, etc. Mais informações estão esperando por você.