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

Vista: 50989|Resposta: 2

[Fonte] O .NET Core implementa bloqueios distribuídos baseados em Redis Lua [com código-fonte]

[Copiar link]
Postado em 2021-05-9 21:11:18 | | | |
Cenários de aplicação de locks distribuídos: Com o desenvolvimento de serviços, aplicações individuais se tornam clusters, locks distribuídos resolvem a operação de diferentes processos (threads) no mesmo recurso em situações simultâneas, e alguns serviços precisam exigir uma única thread para operar, por exemplo: mudanças nos valores dos depósitos, alterações no estoque de mercadorias, etc.

Revisar:

O .NET Core implementa análise sintática distribuída do princípio de trava baseada no Redis
https://www.itsvse.com/thread-9391-1-1.html

.net/c# Implementação do Lock-Lock Distribuído do Zookeeper [Código-Fonte]
https://www.itsvse.com/thread-4651-1-1.html

O Redis usa scripts Lua para explicações detalhadas
https://www.itsvse.com/thread-9634-1-1.html

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

No artigo anterior "[Practice]ASP.NET Core Based on Redis Distributed Lock Flash Kill", quando adicionamos um bloqueio, também ativamos uma thread em segundo plano para estender o tempo do lock, garantindo que, ao ser liberado, o lock ocupado por outras threads não seja excluído por engano.

Depois de aprender o Redis para usar scripts Lua, você pode facilmente usar scripts para completar bloqueios de ocupação e liberar bloqueios.


Primeiro, vamos analisar as renderizações da seguinte forma:



Primeiro abrimos 1000 roscas paralelas para competir pelo cadeado, e o cadeado expirou por 5 segundos.Completamos 1000 threads em 5 segundos, e apenas 1 thread conseguiu obter o bloqueio com sucessoApós esperar 6 segundos, a trava será liberada automaticamente, e você pode ver que a segunda tarefa conseguiu a trava com sucesso, e imediatamente a soltou, e o código subsequente conseguiu a trava com sucesso.

O script lua para obter o bloqueio é o seguinte:

O script lua para liberar o bloqueio é o seguinte:

Código da interface:

Código fonte para download:O login do hiperlink está visível.

Modificar "[Praticar] ASP.NET Núcleo baseado em Redis distributed lock flash sale" é implementado usando este artigo, e nosso site simula isso10.000 itens, e então escreveu um console para simular o tempo de requisição HTTPO esgotamento é concluído em 6 segundos, como mostrado na figura abaixo:

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



Modificar o código de solicitação de simulação de teste:



(Fim)




Anterior:Kafka define manualmente o deslocamento
Próximo:ASP.NET Core recebe o link da URL completa para solicitar
Postado em 2021-11-4 13:50:43 |
{:1_1:} {:1_1:} {:1_1:} {:1_1:} {:1_1:} {:1_1:} {:1_1:} {:1_1:} {:1_1:} {:1_1:} {:1_1:} {:1_1:} {:1_1:} {:1_1:} {:1_1:} {:1_1:}
Postado em 11-06-2022 13:36:33 |
Obrigado, obrigado
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