Separação de leitura/gravação
Esta seção descreve as instâncias de DCS principal/em espera nas quais a divisão de leitura/gravação é implementada no lado do servidor ou do lado do cliente. A divisão de leitura/gravação é adequada para cenários com alta simultaneidade de leitura e poucas solicitações de gravação, com o objetivo de melhorar o desempenho de alta simultaneidade e reduzir os custos de O&M.
A divisão de leitura/gravação do servidor e a divisão de leitura/gravação do cliente são suportadas apenas em algumas regiões.
- Para uma instância de divisão de leitura/gravação do DCS Redis 4.0 ou 5.0, a divisão de leitura/gravação é implementada no lado do servidor por padrão. Os proxies distinguem entre solicitações de leitura e solicitações de gravação e encaminham solicitações de gravação para o nó principal e solicitações de leitura para o nó em espera. Não é necessário configurá-los novamente.
- Para uma instância principal/em espera do DCS Redis 4.0 ou 5.0, a divisão de leitura/gravação é implementada no lado do cliente por padrão. A instância fornece um nome de domínio de leitura/gravação e um nome de domínio somente leitura para receber, respectivamente, solicitações de leitura e gravação do cliente. Desta forma, a divisão de leitura/gravação é alcançada.
Divisão de leitura/gravação do servidor
Descrição da arquitetura
- VPC endpoint service
Você pode configurar sua instância do DCS Redis como um serviço de endpoint da VPC e acessar a instância usando o endereço do serviço de endpoint da VPC.
O endereço IP ou o nome de domínio da instância do DCS Redis de divisão de leitura/gravação é o endereço do serviço de endpoint da VPC.
- ELB
Os balanceadores de carga são implantados no modo HA de cluster e oferecem suporte à implantação multi-AZ.
- Proxy
Um cluster de proxy é usado para distinguir entre solicitações de leitura e solicitações de gravação, e encaminhar solicitações de gravação para o nó principal e solicitações de leitura para o nó em espera. Não é necessário configurá-los novamente.
- Sentinel cluster
Sentinelas monitoram o status do principal e réplicas. Se o nó principal estiver com defeito ou anormal, um failover é executado para garantir que os serviços não sejam interrompidos.
- Master/standby instance
Uma instância de divisão de leitura/gravação é essencialmente uma instância principal/em espera que consiste em um nó principal e um nó em espera. Por padrão, a persistência de dados é ativada e os dados são sincronizados entre os dois nós.
Os nós principal e em espera podem ser implantados em diferentes AZs.
Divisão de leitura/gravação do cliente
Figura 2 A mostra a arquitetura de uma instância principal/em espera do DCS Redis 4.0 e 5.0.
Descrição da arquitetura:
- Uma instância principal/em espera de divisão de leitura/gravação do DCS Redis 4.0 ou 5.0 tem um nome de domínio de leitura/gravação e um nome de domínio somente leitura. O cliente distingue entre solicitações de leitura e solicitações de gravação e envia solicitações de gravação para o nome de domínio de leitura/gravação e solicitações de leitura para o nome de domínio somente leitura para se conectar ao nó principal ou ao nó em espera.
Os dois nomes de domínio podem ser obtidos na página de detalhes da instância no console.
- As instâncias principal/em espera do DCS Redis 4.0 e 5.0 oferecem suporte a Sentinels. Os sentinelas monitoram o status de execução dos nós principal e em espera. Se o nó principal se tornar defeituoso, um failover será executado.
As sentinelas são invisíveis para você e são usadas apenas no serviço.
- Um nó somente de leitura tem as mesmas especificações que um nó de leitura/gravação. Uma instância principal/em espera consiste em um par de nós principal e em espera por padrão.
- As solicitações de leitura são enviadas às réplicas. Há um atraso quando os dados são sincronizados do principal para as réplicas.
Se seus serviços forem sensíveis ao atraso, não use instâncias de divisão de leitura/gravação. Em vez disso, use instâncias principal/em espera ou cluster.
- A divisão de leitura/gravação é adequada quando há mais solicitações de leitura do que solicitações de gravação. Se houver muitas solicitações de gravação, o principal e as réplicas podem ser desconectadas ou a sincronização de dados entre elas pode falhar após a desconexão. Como resultado, o desempenho de leitura se deteriora.
Se os seus serviços forem pesados em gravação, use instâncias principal/em espera ou de cluster.
- Se uma réplica estiver com defeito, leva algum tempo para sincronizar todos os dados do principal. Durante a sincronização, a réplica não fornece serviços e o desempenho de leitura da instância se deteriora.
Para reduzir o impacto da falha, use uma instância com menos de 32 GB de memória. Quanto menor a memória, menor o tempo para sincronização completa de dados entre o principal e as réplicas, e menor o impacto da interrupção.