Basta pedir ao Zookeeper que leia este artigo durante a entrevista

1. O que é o tratador?

O ZK é uma ferramenta de coordenação distribuída de código aberto baseada na linguagem Java, portanto, você deve instalar o JDK antes de usar o ZK, que pode ser usado para bloqueios distribuídos, centros de registro e notificações de eventos. É semelhante à estrutura de diretório em forma de árvore do sistema de arquivos, e o caminho do nó definido é exclusivo.

2. Quais são os cenários de aplicação do Zookeeper?

1. Bloqueio distribuído (redis ou zk)
2. Centro de registro (Dubbo + zk)
3. Desconfiguração do centro de configuração
distribuído 4. Middleware do sistema de mensagens distribuído
5. Publicar e assinar (notificação de evento)
6. Eleição principal

3. Como o Zookeeper implementa bloqueios distribuídos?

O Zk implementa o conceito de bloqueios distribuídos: nós permanecem únicos, notificações de eventos e nós temporários (associação do ciclo de vida e da sessão da sessão)
Como o caminho do nó do Zookeeper permanece único, ele não permite duplicação e possui características temporárias do nó. O nó atual desaparece automaticamente após o fechamento da conexão, alcançando Bloqueio distribuído.
Princípio de implementação:
1. Múltiplas solicitações criam o mesmo nó (lockPath) ao mesmo tempo, desde que alguém possa criar uma bem-sucedida que possa obter a trava;
2. Se o nó for criado, de repente o nó foi criado por outras solicitações, aguarde diretamente;
3 Desde que o nó possa ser criado com êxito, ele começa a entrar na operação normal da lógica de negócios e o outro não adquire o bloqueio para aguardar;
4. Após a execução do processo normal da lógica de negócios, chame zk para fechar a conexão para liberar o bloqueio, notificar outros nós e outros pedidos. Comece a inserir o recurso para adquirir o bloqueio.

4. Qual é a diferença entre Zookeeper e Eureka?

Funcionário do zoológico Eureka
Pode ser um centro de registro Ok Ok
Teoria da PAC CP, para garantir a consistência dos dados AP para garantir a disponibilidade do serviço
Design thinking Pensamento centralizado Pensamento descentralizado
Como garantir a consistência dos dados Protocolo de transmissão atômica Zab O modo Ponto a Ponto é usado para replicação de dados. Para impedir a replicação circular mútua, o método de passar parâmetros no URL é usado para distinguir entre solicitações comuns e solicitações de replicação. Aqueles que aceitam solicitações de replicação não podem mais enviar solicitações de replicação uns aos outros, o que resolve o problema da replicação circular. Use o número da versão para impedir que os dados antigos sejam copiados para os novos dados e use o mecanismo de pulsação para reparar os dados
Como determinar se um nó está inoperante Batimento cardíaco? Os batimentos cardíacos serão removidos se não estiverem ativos e, por motivos de rede, podem estar inativos. Portanto, com o mecanismo de autoproteção, um grande número de batimentos cardíacos perdidos em um curto período de tempo abrirá o mecanismo de autoproteção e não será removido temporariamente. Após a recuperação da falha na rede, o mecanismo de autoproteção será encerrado. O cliente também possui uma lista de registro em cache, caso todo o Eureka não possa ser acessado devido a problemas de rede, desde que exista um nó no eureka, todo o centro de registro de serviços pode ser usado.

Quinto, a diferença entre o Zookeeper e o Redis implementando bloqueios distribuídos?

Funcionário do zoológico Redis
A ideia de implementar bloqueios distribuídos 1. Nó exclusivo 2. Notificação de evento 3. Nó temporário 1. Chave exclusiva 2. Notificação de evento 3. Chave temporária
Adquirir bloqueio Crie o mesmo nó temporário ao mesmo tempo, quem o criar primeiro adquirirá o bloqueio Use o comando setnx para criar a mesma chave, criar um bloqueio de aquisição bem-sucedido, retornar 0 se a criação falhar e 1 se for bem-sucedido
Liberar bloqueio Excluir um nó é equivalente a liberar o bloqueio.Os eventos do nó notificam outros threads para começar a competir por bloqueios A exclusão da chave é equivalente a liberar o bloqueio.O evento notifica outros threads para começar a competir pelo bloqueio
Bloqueio de tempo limite O tempo do nó temporário termina (Sessão), indicando que o bloqueio atingiu o tempo limite e a transação foi revertida O tempo da chave terminou, indicando que o bloqueio expirou e a transação foi revertida

6. O princípio eleitoral subjacente do tratador? Como manter a consistência dos dados?

O zxid é o líder, e o zxid é o mesmo que o myid. O Myid é definido por si só. Ele é
baseado no protocolo de transmissão atômica do Zab para manter a consistência dos dados. É semelhante ao protocolo de envio de duas fases da 2PC
1. Todas as solicitações escritas pelos nós seguidores são entregues a um líder. Quando uma solicitação de transação é emitida, nosso nó líder cria um zxid global (ID da transação, quanto maior o zxid, mais novos são os dados)
2. O nó líder trará o zxid a cada seguidor no primeiro estágio do estágio de notificação O nó envia uma notificação de sincronização de confirmação (zxid + 1 no momento)
3. Desde que mais da metade dos nós seguidores confirme a confirmação de sincronização, o líder enviará os dados da transação de confirmação para todos os seguidores nesse momento; o
zxid será modificado após a primeira fase da notificação ter êxito. ,

7. O que é a teoria da PAC? Por que o CAP não pode cuidar dos três?

C: Forte consistência dos dados, verifique se os dados não podem estar errados, o serviço não está disponível quando os dados são sincronizados, preste atenção à consistência dos dados
A: Fraca consistência dos dados, os dados podem estar errados, permita leituras sujas, o serviço está disponível quando os dados são sincronizados, eventualmente os dados serão consistentes , Preste atenção à disponibilidade do serviço
P: a tolerância a falhas da partição de rede, permitindo falhas na rede, não julgará um nó inativo devido a falhas na rede

O CAP cuida dos três, ou seja, o serviço está disponível e os dados são consistentes. Por exemplo: quando o nó mestre sincroniza os dados com o nó escravo, os dados do nó escravo não são os mais recentes. Se você enviar uma solicitação ao nó escravo, os dados retornados deverão ser dados antigos. O serviço de palco não está disponível.

8. Por que os nós do cluster do Zookeeper devem ser estranhos? Por que o número de clusters é maior que três?

Razões para o número ímpar
1. Como o número restante de nós deve atender a mais da metade do mecanismo, os nós restantes> total de nós / 2, três grupos e quatro grupos podem ser reduzidos apenas um, não é tão bom quanto três
2, é fácil obter o mesmo número de votos como número 2

A razão pela qual o número de clusters é maior que três: se
dois deles estiverem agrupados, a falha de um não satisfará mais da metade do mecanismo.

9. Quais são os três tipos de nós no Zookeeper? Qual é o papel?

1. O tipo de líder tipo de líder é responsável por escrever solicitações e é sincronizado com cada nó
2. O seguidor de tipo seguidor é responsável por solicitações de leitura e resolução de votação
3. Observador de tipo observador e seguidor a maioria das características são as mesmas, a única diferença é que elas não podem participar Eleição e votação
Nota: Quando o cluster zk é expandido no período posterior, é recomendável não usar o tipo de nó a seguir, o que fará com que o tempo de eleição se torne mais longo.
Por que usar o tipo ObServer?
Principalmente não afeta a eficiência do horário da eleição original, o objetivo é melhorar a eficiência da consulta do cliente; a
operação de gravação é encaminhada ao líder para gravar, o seguidor da operação de leitura ou a leitura do observador

10. Qual é a diferença entre o protocolo de transmissão atômica Zab, o protocolo Paxos e 2PC / 3PC?

11)

12. Falar sobre o problema do cérebro dividido no Zookeeper? Como resolver isso?

No caso de um cluster, geralmente apenas um nó mestre será eleito e outros nós o confortarão desde o início; se os nervos da rede ou alguns nós não puderem se comunicar, isso fará com que alguns nós reelegam as eleições, que existirão Vários nós principais.

Resolva o problema do cérebro dividido através de mais da metade do mecanismo. O número de nós restantes é maior que a metade, não é igual à metade, ou não há líder ou há apenas um líder

XIII.

Quatorze, ACL quatro tipos de permissões

1. mundo: padrão, acessível em todo o mundo
2. auth: usuários autenticados podem acessar
3. digest: nome de usuário e senha, comumente usados
4. ip: o ip especificado pode acessar

Quinze, existem quatro tipos de nós:

1. Nó temporário - a sessão fecha e desaparece automaticamente (zk.close ())
2. Nó persistente - permanentemente persistente no disco rígido
3. Nó ordenado temporário, auto-incremento
4, nó ordenado persistente

Dezesseis, método de implementação de bloqueio distribuído: concept: para resolver várias jvms, apenas uma jvm pode executar no final

1. Implementar bloqueio distribuído com base no banco de dados 2. Implementar bloqueio distribuído com
base no Redis 3. Implementar bloqueio distribuído com
base no Zk 4. Implementar bloqueio distribuído com
base no framework redisson

17

18. Qual é a diferença entre Eureka e Nacos?

Dezenove, o protocolo de transmissão atômica zab tem dois modos

1. Modo de recuperação: Quando o nó é iniciado pela primeira vez, o líder é eleito e o nó escravo entra no modo de recuperação para sincronizar os dados do nó mestre
2. Modo de transmissão: resolve o problema de sincronização de dados de cada nó

20. protocolo de envio bifásico 2PC para resolver o problema da sincronização de dados distribuídos?

O protocolo de confirmação de duas fases da 2PC é usado em cenários de transação distribuída para resolver a consistência dos dados entre vários sistemas distribuídos, como o mecanismo XA do banco de dados.
Vários servidores gravam ao mesmo tempo, todos os erros são revertidos

. É uma
solicitação de transação de identificação de transação global : somente na operação de gravação a
camada inferior da transação Zk será usada para resolver o problema da transação distribuída, que é o protocolo Zab semelhante ao protocolo de confirmação de duas fases de 2pc;

21. Em que circunstâncias o zxid será inconsistente?

Um caiu de repente durante a sincronização

22)

Vinte e três

24)

25)

26)

27

28)

29

Trinta,

O nó raiz também pode
criar vários nós pai sem o nome do nó.Você deve primeiro criar um nó pai e depois criar um nó filho, caso contrário, um erro será relatado.

Multi-threads de jvm únicos geram números consistentes de pedidos com problema usando sincronização ou trava de bloqueio
Vários jvm geram números de pedidos ao mesmo tempo, se duplicados

O bloqueio sincronizado ou de bloqueio pode ser válido apenas na jvm local

A transação ZK mantém a consistência dos dados com base no protocolo de envio bifásico 2PC Quando o nó principal processa a solicitação de transação, se o nó principal não possui uma exceção, o nó principal primeiro notifica o nó escravo para sincronizar os dados ou o nó mestre envia a transação Mais? O aumento do zxid é feito antes ou depois da notificação do nó escravo para sincronização?

Publicado 53 artigos originais · Curtidas2 · Visitas 1868

Acho que você gosta

Origin blog.csdn.net/qq_42972645/article/details/104626705
Recomendado
Clasificación