Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 156057|Resposta: 37

[Programa de Console] .net/c# Implementação do Lock-Lock Distribuído do Zookeeper [Código-Fonte]

[Copiar link]
Publicado em 04/04/2018 17:10:42 | | | |
Primeiro, os dois artigos a seguir sobre .net/c# Zookeeper distribuíram fechaduras:

O login do hiperlink está visível.

O login do hiperlink está visível.

Na verdade, os dois artigos acima estão errados! Completamente enganando desenvolvedores de programação!


SobreTutorial de instalação do Zookeeper:

【Combate Prático】Tutorial de instalação do Zookeeper no ambiente Windows
http://www.itsvse.com/thread-4603-1-1.html
(Fonte: Architect_Programmer)

O princípio de implementação do bloqueio distribuído Zookeeper é explicado em termos simples:

1: Colocar todos os nós filhos debaixo do armário

2: Todos os subnós estão organizados, aqui estão duas situações

Se seu nó tiver o menor número de série, então o cliente é considerado como tendo obtido o bloqueio. Você pode fazer o seu próprio caminho!
Se seu nó não for o menor número de série, o nó que escuta o menor não é o anterior, que é menor que você!! Preste atenção aqui!
(Porque seu nó anterior pode expirar e liberar o bloqueio!) )

3: Aguarde a notificação do Zookeeper e, então, repita a operação do 2, puxe todos os nós, ordene-os e julgue se você é o menor nó............

Depois de conhecermos o princípio, vamos analisar por que as duas primeiras introduções do artigo estão erradas?





Olhando para o exemplo da ordem no artigo, parece correto, e o resultado após a execução também está correto! No entanto, se você testar algumas vezes, saberá que o código do artigo está completamente errado!!!

Então, conhecendo o princípio, vamos escrever nós mesmos! Enfim, não é a primeira vez que sou preso por código na Internet!

Aqui está o gif correto:



Código de chamada:



A ZooKeeperNet.dll versão usada é a 3.4.6.1

[Combate real] ASP.NET Core é baseado na venda flash de bloqueio distribuída da Redis
https://www.itsvse.com/thread-9397-1-1.html

Por fim, anexe o código-fonte:

Turistas, se quiserem ver o conteúdo oculto deste post, por favorResposta





Anterior:Resolver o problema de "Usar uma senha na interface de linha de comando... "
Próximo:o jquery recebe o tipo de rótulo do objeto jquery
Publicado em 06/05/2019 18:15:55 |
LZ, olhei o código-fonte e ele não tratava de operações de timeout zk, como liberar locks, seja por causa do mecanismo de nó temporário ZK. Se o zk for desconectado, o nó é automaticamente excluído.
Publicado em 03/07/2019 11:16:25 |
Erro de execução: Lança uma exceção do tipo ZooKeeperNet.KeeperException+ConnectionLossException.
Publicado em 06/05/2019 18:17:02 |
No caso de um único zk, pode não haver problema. Se o zk for um cluster, haverá problemas com o desempenho de 3 atualizações sincronizadas de dados do zk?
Publicado em 08/04/2018 16:32:38 |
Obrigado por compartilhar, vamos dar uma olhada
Publicado em 01/06/2018 12:01:39 |
Obrigado por compartilhar
Publicado em 05/07/2018 12:31:02 |
Belo post
Publicado em 10/07/2018 12:11:14 |
Mark
Mark
Mark
Mark
Publicado em 11/07/2018 15:47:20 |
Sim, estamos trabalhando em um esquema de implementação de bloqueio de distribuição
Publicado em 01/08/2018 12:52:23 |
Vamos dar uma olhada
Publicado em 28/10/2018 19:55:23 |
Aprenda a aprender
Publicado em 31/10/2018 16:52:15 |
Estudando, obrigado
Publicado em 23/11/2018 10:24:32 |
Nada mal, muito bom
Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com