O princípio Redis Cluster Cluster

A, Redis arquitetura de cluster

Redis Redis Cluster foi lançado na versão 3.0 distribuído soluções. Uma pluralidade Redis Redis os nós de cluster. dados disjuntos entre diferentes nós, cada nó corresponde a uma pluralidade de partes de dados. A parte do nó no nó de apoio, por meio de replicação de espera para garantir a consistência dos dados. Um nó mestre pode ter uma pluralidade de nós escravos, o nó mestre fornece ler e serviços de escrita, fornecendo uma leitura a partir do nó de serviços.

1,1 mecanismo de comunicação interna

Redis Cluster nodos entre a informação interativa através das Redis Autocarro Cluster. Redis Cluster informações de configuração de cada nó no registro de cluster: O número da versão Epoch, os dados de estado do cluster desse Estado.

  Cada nó Redis Cluster são preservados cluster de perspectiva estrutura de nó. Ele descreve como os dados são fragmentados, em nó mestre e o escravo, e a consistência de configuração de cluster de informações como o número da versão por Epoch, enquanto se controla o processo de migração de dados e falha.

1,2 Redis Cluster ao centro
 em Redis cluster, cada nó mestre escravo princípio tem um ou mais nós. Todos os nós do cluster mestre pode ler e gravar dados, prioridades equivocadas. Cada nó mestre comunicação interna, replicação assíncrona do protocolo inter-nó Goossip. No entanto, a replicação assíncrona pode levar à perda de dados, em certas circunstâncias específicas. Então, Redis Cluster não garante forte consistência dos dados.

projeto Redis Cluster da ideia central: dividir os dados, para o centro.

Dois, Redis Cluster pedaço de dados

2.1 regras fragmentação de dados

Em um cluster distribuído, como garantir que o mesmo pedido cai na mesma máquina, ea parte traseira da máquina pode ser tão aglomerados de pedido de partilha, requerem o uso de uma estratégia de razoável, existem dois métodos tradicionais:
1, Hash Algorithm: um número fixo de nós quando um nó vai para baixo, o tampão de reconstrução.
2, algoritmo de hash consistente: quando um nó vai para baixo, apenas os dados no nó afetado. Pressão será levado para o banco de dados.
  Quando ranhura de hash Redis Cluster algoritmo usado parcialmente afectados pelo número de nós e fixa os nós pode ser configurado para mapear para evitar inflexibilidade módulo de hashing e consistente.
  Redis Cluster todos os dados distribuídos de acordo com o algoritmo de ranhura de hash 16384 [0-16383] O hash ranhuras acima, os sulcos picadas distribuídas em cada nó, cada nó mantém a sua própria ranhura de hash.

2.2 rotas cliente

Quando o slot de hash acesso chave do cliente não está no nó atual, Redis Cluster comando retorna movido, e informar a informação de encaminhamento adequado. Quando Cliente movido recebe comandos, solicita Redis novamente e atualiza suas informações de cache de roteamento interno.

  Quando Redis Cluster redistribuído nos dados, Redis Cluster use o comando para pedir o redirecionamento. Uma vez que a redistribuição de dados, os dados podem ser um hash existem ranhuras em ambos os antigos e os novos nós. Então, pergunte apenas redirecionamentos e não irá atualizar as informações de roteamento.

2.3 Dados peças de migração

Quando há um novo nó mestre junta-se o conjunto, o nó é removido do cluster ou porque a distribuição irregular dos dados necessários para a re-distribuição de dados, que é necessário para migrar a fatia de dados. A migração de dados está dividido em três passos:
1, o comando de mudança de estado transmitida para o nó de destino, que corresponde ao endereço calculado da situação de ranhura é definida como a importação nó de destino.
2, um comando de alteração de estado para o nó de origem da transmissão, o nó de origem correspondente à situação de ranhura hash para migrar.
3, para todos sulco a chave de hash no nó de origem, o nó de origem transmite um comando para migrar, para informar a chave nó de origem correspondente ao nó de destino.
  Quando o estado está definido para a migração nó de origem. Neste momento diferem sob um estado normal, eo serviço fornecido pelo nó de origem:
. 1, se a chave de acesso de cliente não foi movido para fora do processamento normal da chave;
2, se a chave foi movida para fora ou a chave não existe, ele irá retornar o cliente ASK, permitido saltar para um nó de processamento de informação dirigida;
  quando o estado do nó de destino a importação. Isso indica que a ranhura correspondente é movida para o nó de destino. Diferem em circunstâncias normais e o nó de destino:
1, o slot para todos os não pedir operações de salto, o nó de destino não funciona, mas através movida para que salto do cliente para o nó de origem para executar. Isso garante que a mesma chave é sempre executado no nó de origem antes da migração. Depois nó de destino de migração é sempre executada, eliminando assim o dobro do conflito.
2, o processo de migração, a chave recém-adicionado será executado no nó de destino, o nó de origem não vai adicionar chave. limites de migração que fazem tem que ser no fim de um certo tempo.

Um único processo de migração chave pode ser feito pelo comando atomização migrar. Para o nó do nó de origem e o nó-destino, o mestre é preparado através da cópia, adições e deleções de alcançar dados. Quando tudo migração chave é fragmento completo, cliente fornecido pelo comando setslot Redis Cluster do nó de destino, um movimento para conter o slot. O processo de instalação irá Epoch incremento, e o último valor de Cluster. Em seguida, ao detectar um ao outro, se espalhou para os outros nós no cluster.

Três, Redis Cluster Failover

3.1 nó julgamento falha
  informações Primeiro, Redis Cluster em cada nó lá todos os nós do cluster. Pode ligados uns aos outros pelo nó de determinação de ping-pong entre eles. Se mais de metade dos nós de ping em um nó quando não houver resposta, considera o nó do cluster vai para baixo.

3.2 eleições de escravos
  quando o nó de cluster primário é reconhecido como um estado falhar, ele irá iniciar uma campanha a partir do nó, se houver vários nós escravos, é mais provável para iniciar a campanha os novos dados nó. Outro nó mestre aglomerado retorna uma resposta.

3.3 mudanças estruturais
  quando a campanha recebeu mais da metade o consentimento nó primário, será o novo nó principal do nó. Desta vez será a última Epoch mensagem de difusão por PONG, para que outros nós Redis Cluster informações de atualização de cluster como mais rapidamente possível. Quando os recupera nó primário originais de adicionar rebaixado para um nó.

Quatro, Redis Cluster de Alta Disponibilidade

4.1 A protecção nó mestre
  quando um nó no cluster de qualquer exemplo de tempo de inactividade, o Redis Cluster será réplica exemplo não exclusivo a partir da migração de uma instância, tornar-se esse nó para outros nodos.
  Cada nó activo no cluster de modo que, pelo menos, um escravo, tendo tais Cluster alta disponibilidade. Cluster só precisa manter 2 * + 1 nós mestre, ele pode ser mantido quando qualquer de um nó vai para baixo, depois de um failover continuou disponibilidade.

4,2 do cluster falhar condição
  garantia Redis Cluster as características básicas disponível apenas quando determinadas condições são identificados como falhar:
1, um nó mestre e todos jeito de todos os nós, o agrupamento não conseguem entrar no estado.
2, se mais de metade do cluster nó primário desligar, independentemente do nó no cluster falhar estadual.
3, se qualquer um dos cluster primário nó jeito, e o estado atual do nó mestre não deixa de entrar no nó do cluster.

Este ligado: https://yq.aliyun.com/articles/711825

Publicado 88 artigos originais · ganhou elogios 49 · Exibições 100.000 +

Acho que você gosta

Origin blog.csdn.net/Diamond_Tao/article/details/99441680
Recomendado
Clasificación