Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 50989|Respuesta: 2

[Fuente] .NET Core implementa bloqueos distribuidos basados en Redis Lua [con código fuente]

[Copiar enlace]
Publicado el 9-05-2021 a las 21:11:18 | | | |
Escenarios de aplicación de bloqueos distribuidos: Con el desarrollo de servicios, aplicaciones individuales se convierten en clústeres, los bloqueos distribuidos resuelven la operación de diferentes procesos (hilos) en el mismo recurso en situaciones concurrentes, y algunos servicios deben requerir un solo hilo para operar, por ejemplo: cambios en los importes de depósitos, cambios en el inventario de mercancías, etc.

Revisión:

.NET Core implementa análisis de principios de bloqueo distribuido basado en Redis
https://www.itsvse.com/thread-9391-1-1.html

Implementación de bloqueo distribuido de .net/c# Zookeeper [Código fuente]
https://www.itsvse.com/thread-4651-1-1.html

Redis utiliza scripts Lua para explicaciones detalladas
https://www.itsvse.com/thread-9634-1-1.html

[Combate real] ASP.NET Core está basado en la venta flash de candados distribuidos de Redis
https://www.itsvse.com/thread-9397-1-1.html

En el artículo anterior "[Práctica]ASP.NET Núcleo basado en Redis Distributed Lock Flash Kill", cuando añadimos un bloqueo, también activamos un hilo en segundo plano para extender el tiempo del bloqueo, de modo que aseguramos que, al liberar el bloqueo, el bloqueo ocupado por otros hilos no se elimine por error.

Después de aprender Redis a usar scripts Lua, puedes usar scripts fácilmente para completar bloqueos de ocupación y liberar bloqueos.


Primero, echemos un vistazo a los renderizados de la siguiente manera:



Primero abrimos 1000 roscas paralelas para competir por el candado, y el candado expiró durante 5 segundos.Completamos 1000 hilos en 5 segundos, y solo 1 hilo consiguió el bloqueoTras esperar 6 segundos, el bloqueo se libera automáticamente, y puedes ver que la segunda tarea ha conseguido el bloqueo y lo ha liberado inmediatamente, y el código posterior lo ha conseguido con éxito.

El script lua para obtener el bloqueo es el siguiente:

El script lua para liberar el candado es el siguiente:

Código de la interfaz:

Descarga del código fuente:El inicio de sesión del hipervínculo es visible.

Modificar "[Practice] ASP.NET Core basado en Redis distributed lock flash sale" se implementa usando este artículo, y nuestra web lo simula10.000 artículos, y luego escribió una consola para simular el tiempo de la solicitud HTTPEl agotamiento se completa en 6 segundos, como se muestra en la figura siguiente:

[Combate real] ASP.NET Core está basado en la venta flash de candados distribuidos de Redis
https://www.itsvse.com/thread-9397-1-1.html



Modificar el código de solicitud de simulación de prueba:



(Fin)




Anterior:Kafka ajusta manualmente el desplazamiento
Próximo:ASP.NET Core recibe el enlace completo de la URL de solicitud
Publicado el 4-11-2021 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:}
Publicado el 11-6-2022 13:36:33 |
Gracias, gracias
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com