【Prefácio】
Quando os dados atingem uma certa quantidade, o banco de dados se torna o gargalo de todo o sistema, e a estratégia de otimização geralmente é adotada como separação entre leitura e escrita, e o banco realiza a separação entre leitura e escrita dividindo o banco de dados principal do banco de dados (operação de solicitação de escrita a partir do banco de dados principal, operação de solicitação de leitura a partir do banco de dados);
【Ideias para resolver atrasos de dados】
1. O princípio da sincronização mestre-escravo (aqui tomamos o MySQL mais popular como exemplo)
Aqui está um diagrama esquemático de uma sincronização clássica de dados mestre-escravo do MySQL via binlog:
2. Como surgem os problemas?
1. A partir do esquema acima, não é difícil descobrir que a sincronização mestre-escravo tem um certo atraso, que afeta o tamanho do atraso:
(1) O tamanho do atraso depende da quantidade de dados gerados da última sincronização até o presente
(2) A situação atual da rede entre servidores
(3) A pressão do próprio servidor mestre-escravo (CPU, memória, IO, etc.)
2. Como o serviço de banco de dados geralmente está na intranet, e o servidor estará mais alto na configuração (mais do que a necessidade real) ao ser adquirido, a sincronização é basicamente muito rápida, geralmente em milissegundos;
3. Em cenários gerais de negócios, a latência de milissegundos pode ser ignorada;
4. Existem casos gerais e especiais, e algumas situações especiais exigem diferença de tempo em tempo real de milissegundos. Aqui estão soluções comuns para essas situações especiais.
3. Soluções de latência de dados:
1. Esquema 1: Escrever o programa em dobro (escrever o banco de dados principal e ler o banco de dados ao mesmo tempo)
2. Esquema 2: Leia o programa para verificar o banco de dados principal
3. Esquema 3: Escrever o banco de dados principal e escrever o cache (definir um certo tempo de expiração, geralmente um pouco maior que o atraso máximo de sincronização do banco de dados), ler o programa, ler o cache e ler o banco de dados escravo
4. Vantagens e desvantagens dos três esquemas:
1. Esquema 1: A escrita dupla consumirá uma certa quantidade de desempenho, o que é relativamente simples de implementar e não é adequado para cenários de escrita concorrente de alta intensidade;
2. Esquema 2: O programa de leitura afetará o desempenho da biblioteca principal, que é relativamente simples de implementar e não é adequado para cenários de leitura concorrente elevada.
3. Esquema 3: Na maioria dos casos, leitura e escrita consomem mais desempenho de escrita, o que é mais complexo de implementar e adequado tanto para leituras concorrentes quanto para gravações concorrentes elevadas (leituras e gravações em cache são muito rápidas);
【Resumo】
1. A implementação é importante, mas mais importante é a ideia;
2. Muitos princípios e ideias subjacentes são universais Original:https://blog.csdn.net/zhanghan18 ... le/details/91638443
|