Disponibilidade e desempenho de um único ponto de otimização de arquitetura de sistema

Primeiro, a demanda por origem

Obviamente arquitetura exige alta disponibilidade, por que um único ponto do sistema?

Resposta: mestre de ponto único de design, vai projeto do sistema simplificam muito, para não mencionar, por vezes, não pode evitar um ponto único

 

Haverá um único ponto em que a cena? Primeiro, olhe para uma infra-estrutura de Internet típico de alta disponibilidade.


A alta disponibilidade de infra-estrutura típica Internet:

(1) camada de cliente , esta camada é navegador ou APP, o primeiro passo para acessar o servidor DNS, um nome de domínio para obter nginx IP de rede externa

(2) de carga de camada de equilíbrio , nginx é a entrada para todo o servidor, que é responsável pela proxy reverso e equilíbrio de carga de trabalho

(3) o nível local , a camada de servidor web, tipicamente tomcat ou Apache

(4) o nível de serviço , o nível de serviço, tipicamente dubbo poupança ou fornecer chamada RPC serviços de back-end

(5) uma camada de dados , e que compreende um banco de dados de cache, tipicamente separada da cópia principal da arquitectura de gravação db

Nesta arquitetura Internet, a camada local, a camada de serviço, o banco de dados da biblioteca pode ser por meio de redundância para garantir a alta disponibilidade, mas pelo menos

(1) camada nginx é um único ponto potencial

(2) base de dados principal biblioteca de gravação também é um potencial ponto único

 

Como outro exemplo GFS (Google File System) arquitetura.


sistema GFS arquitetura, onde há tão poucos papéis:

(1) Cliente iniciados finais, está chamando ler e arquivos de gravação

(2) Mestre , que é um ponto único de serviço, ele tem uma carreira global, informação mestre meta arquivo

(3) chunk-servidor , a quantidade real de servidor de arquivos de armazenamento

Este sistema, mestre também é um ponto único de serviço, Map-Reduce sistema tem um papel de coordenação geral semelhante de ponto único mestre.

 

projeto de arquitetura do sistema, como o nginx, db-master, gfs-master de um único ponto de serviço tal, não será um problema, quais as soluções para otimizá-lo, este é um problema discutido neste artigo.

 

Em segundo lugar, há o problema da arquitetura de ponto único

sistema de ponto único em geral, existem dois grandes problemas:

(1) Não disponibilidade : Uma vez que é um único ponto, evento mestre de falha, o serviço será afetada

(2) gargalos de desempenho : Uma vez que é um único ponto, não tem boa escalabilidade, desempenho do serviço, há sempre um limite, o limite superior de um ponto único de desempenho é muitas vezes limitam o desempenho de todo o sistema

 

Em seguida, dê uma olhada no que a otimização meios para otimizar as duas questões acima mencionadas

 

Três, sombra-master ponto único de problemas de disponibilidade para resolver

sombra-master é uma soluções de tecnologia muito comum para resolver o problema de um único ponto de disponibilidade.

"Mestre Sombra", como o nome sugere, quando o serviço normal, é apenas um mestre a sombra de um único ponto de falha no mestre, sombra-mestre se tornará automaticamente um mestre, para continuar a prestação de serviços.

sombra-master pode resolver o problema da alta disponibilidade e failover é automático, sem intervenção humana, mas é a falta de utilização de recursos reduzidos em 50% de serviços, a indústria keepalived + maneira vip para alcançar este tipo frequentemente utilizado alta disponibilidade único ponto .

 


GFS para o mestre, por exemplo, quando um mestre normais:

(1) cliente se conectará mestre normal, sombra-master não fornece serviços

(2) detectar o mecanismo de sobrevivência entre o mestre e sombra-mestre

(3) mestre sombra-master e têm o mesmo IP virtual (virtual-IP)

 


Quando você encontrar exceção mestre:

shadow-mestre se tornará automaticamente o mestre superior, o mecanismo de IP virtual para garantir que o processo é transparente para o chamador

 

Além de sistema GFS e MapReduce mestre mestre, nginx também pode ser usado de forma semelhante para garantir alta disponibilidade, o principal banco de dados mestre biblioteca (biblioteca principal) também pode ser usado de forma semelhante para garantir alta disponibilidade, mas alguns lugares deve prestar atenção aos detalhes:


A partir de uma multi-mestre tradicional, ler e escrever arquitetura db separado, alta disponibilidade só pode garantir biblioteca de leitura, alta disponibilidade não é garantida biblioteca de gravação, a fim de garantir a alta disponibilidade biblioteca de gravação, você também pode usar a sombra-master acima mencionada mecanismo:


(1) definir duas bibliotecas principais bis mutuamente sincronizado modo mestre

(2) uma biblioteca principal normalmente só prestação de serviços implica, sombra-master não será sincronizado com os dados mestre

(3) anormal, desviou-se para a outra biblioteca virtual IP principal, bibliotecas sombra mestre-de continuar a prestar serviços para a principal

Note-se que, devido à natureza especial do banco de dados, o atraso de sincronização de dados necessária, se a sincronização de dados ainda não está concluída, o fluxo é tangente à sombra-master, pode causar uma pequena quantidade de inconsistência de dados.

 

Quatro, reduzindo a interacção com um único ponto, um único ponto da direcção do núcleo do sistema de optimização

Desde que nós sabemos que há um limite de desempenho de um único ponto, ponto único de desempenho (por exemplo, na GFS master) pode se tornar um gargalo no sistema, em seguida, reduzir para interagir com um único ponto, tornou-se o único ponto de otimização do sistema direção do núcleo.

Como reduzir a interação com um único ponto, dois métodos comuns mencionados aqui.

escrita lote

Batch escrita é uma forma comum de melhorar o desempenho de um único ponto.

Por exemplo, usando uma única geração ponto write exemplo banco de dados "ID Generator" fazer:


(1) lado Negócios necessidade ID

(2) utilização de um único ponto de escritor de banco de dados de geração automática ID increament e retorna o ID

Este é um exemplo muito comum, muitas empresas que é tão gerados ID, que utiliza as características do banco de dados para escrever um único ponto, conveniente, sem custos adicionais de desenvolvimento, é um programa muito bonito.

problema em potencial: o limite superior do ID geração simultânea, dependendo do desempenho de gravação limitar um único banco de dados de ponto.

Como melhorar o desempenho? escrita lote

 


(1) no meio de um serviço, tirar cada ID do banco de dados 100

(2) o lado de negócios necessidade ID

(3) serviço de retorno direto id 100 1, 100 foram distribuídos, em seguida, acessar o banco de dados

Como resultado, cada atribuído 100 vai escrever um banco de dados, o desempenho pode ser considerado para melhorar a ID de alocação de 100 vezes.

 

o cache do cliente

cache do cliente também é um método de um único ponto e o número de interacções, melhorar o desempenho global do sistema é reduzida.

Ou no sistema de arquivos GFS como um exemplo:


(1) cliente GFS chama o cliente para acesso shenjian.txt, verifique primeiro o cache local, perca a

(2) o cliente para acessar arquivos no mestre perguntou: onde, mestre diz cliente em chunk3

(3) o cliente para armazenar shenjian.txt cache local gravado em chunk3, e, em seguida, ler e arquivos de gravação

(4) o próximo cliente para acessar arquivos de cache local para encontrar os registos correspondentes não precisará solicitar um mestre, você pode acessar diretamente o pedaço-servidor. Se o arquivo mudou, cliente chunk3 retorno para dizer "não no meu arquivo aqui", cliente e, em seguida, acessar o mestre, pedir o arquivo de servidor está localizado.

 

De acordo com a experiência, este tipo de cache de bater muito, muito alto, provavelmente (desde arquivo migrado automaticamente é uma pequena probabilidade de eventos) em 99,9%, eo número de interações com o mestre reduziria 1.000 vezes.

 

Em quinto lugar, a expansão horizontal é um bom programa para melhorar o desempenho do sistema de ponto único

Não importa como gravação em massa, o cache do cliente, um único ponto, depois de tudo, stand-alone, ou têm um limite de desempenho.

Encontrar maneiras de expandir horizontalmente, para eliminar um único ponto, em teoria, ser capaz de melhorar o sistema de sistema infinito.

Com nginx por exemplo, como a escala horizontal é?


O primeiro passo da resolução de DNS, só pode retornar uma rede externa nginx IP Por quê? A resposta é claramente não, "a votação DNS" técnico nginx suporte de servidor DNS retorna um IP rede externa diferente, para que possamos atingir o nível de expansão nginx balanceamento de carga camada.

 


porção de DNS-servidor, uma pluralidade do domínio de IP pode ser configurado, cada vez que o pedido de resolução de DNS, devolve uma sondagem a diferentes IP, pode ser conseguida a expansão nginx horizontal, a camada de carga expansão equilibrar o desempenho global.

 

Um único ponto de escrever biblioteca de banco de dados é a mesma razão, no caso de grande quantidade de dados, você pode dividir nível, para melhorar o desempenho de gravação.

 

Infelizmente, nem todos os cenários de negócios pode ser dividida horizontalmente , por exemplo, o número de negócios pico, as mercadorias podem ser pequeno, a quantidade de dados no banco de dados, ele pode não ser dividida para aumentar o nível global do sistema de gravação de desempenho de pico ( uma biblioteca de 100 não pode gravar, certo?).

 

VI Resumo

O tópico de hoje da discussão aqui, um monte de conteúdo, tendo um tempo valioso profundamente culpado, estima que a maioria não se lembra, pelo menos alguns pontos para lembrar que:

(1) a presença de problemas no sistema de ponto único : problemas de disponibilidade, gargalos de desempenho

(2) Sombra-mestre é uma solução comum para o problema de um ponto único de soluções de disponibilidade do sistema

(3) que interage com um único ponto de redução , é a presença da direcção do núcleo de um único ponto de optimização do sistema, os métodos comuns de escrita lote, o cache do cliente

(4) o nível de expansão é um programa bom para melhorar o desempenho do sistema de um só ponto

Publicado 136 artigos originais · ganhou elogios 6 · vista 1512

Acho que você gosta

Origin blog.csdn.net/weixin_42073629/article/details/104603514
Recomendado
Clasificación