El bloqueo distribuido basado en zk previamente escrito es el siguiente:
Redis implementa el principio de bloqueo distribuido:
El principio de implementar bloqueos distribuidos en Redis es llamar al comando SETNX de redis, y si la clave ya existe, el comando SETNX no hace nada. El comando devuelve 1 cuando la configuración tiene éxito y 0 cuando falla.
Primero, nuestra web simula 10.000 productos y luego escribe una consola simulando la solicitud HTTP, que tarda 40 segundos en completar la compra, y el renderizado es el siguiente:
Crea un nuevo sitio web ASP.NET Core 3.1, y el paquete de bloqueo redis es el siguiente:
He visto que muchos candados de liberación en Internet están escritos de la siguiente manera:
Sin embargo, parece que puede haber un problema; en el caso de la concurrencia, es posible devolver la verdad en el momento de la sentencia, es efectivamente un bloqueo añadido por sí mismo, pero cuando se elimina el bloqueo, puede estar enEn casos extremos, el bloqueo ha sido obtenido por otro hilo, en caso de que se elimine el bloqueo de otra persona.
Por lo tanto, al conseguir un candado, necesitas abrir un hilo para alargar el tiempo de caducidad del candado.
La interfaz de WeatherForecastController es la siguiente:
Puedes iniciar la web de la API a través de la línea de comandos, que se puede reiniciar fácilmente, de la siguiente manera:
Crea una nueva solicitud HTTP de mockup .NET Core para compra instantánea, el código es el siguiente:
Si hay algún problema, gracias por corregirlo.
Finalmente, adjunta el código fuente:
Turistas, si queréis ver el contenido oculto de esta publicación, por favor Respuesta
|