Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 50989|Risposta: 2

[Fonte] .NET Core implementa locks distribuiti basati su Redis Lua [con codice sorgente]

[Copiato link]
Pubblicato il 9-05-2021 alle 21:11:18 | | | |
Scenari applicabili dei lock distribuiti: Con lo sviluppo dei servizi, singole applicazioni diventano cluster, i lock distribuiti risolvono il funzionamento di processi diversi (thread) sulla stessa risorsa in situazioni concorrenti, e alcuni servizi devono richiedere un singolo thread per funzionare, ad esempio: variazioni negli importi dei depositi, modifiche nell'inventario delle merci, ecc.

Recensione:

.NET Core implementa la parsing distribuita del principio dei lock-uri basata su Redis
https://www.itsvse.com/thread-9391-1-1.html

Implementazione di blocco distribuito .net/c# Zookeeper [codice sorgente]
https://www.itsvse.com/thread-4651-1-1.html

Redis utilizza script Lua per spiegazioni dettagliate
https://www.itsvse.com/thread-9634-1-1.html

[Combattimento reale] ASP.NET Core si basa sulla vendita flash di lucchetto distribuita di Redis
https://www.itsvse.com/thread-9397-1-1.html

Nell'articolo precedente "[Practice]ASP.NET Core Based on Redis Distributed Lock Flash Kill", quando abbiamo aggiunto un lock, abbiamo anche attivato un thread in background per estendere il tempo del lock, così da garantire che, quando il lock viene rilasciato, il lock occupato da altri thread non venga cancellato per errore.

Dopo aver imparato Redis a usare gli script Lua, puoi facilmente usare script per completare blocchi di occupazione e liberare blocchi.


Per prima cosa, diamo un'occhiata ai rendering come segue:



Abbiamo prima aperto 1000 filettature parallele per competere per il lucchetto, e il lucchetto è scaduto per 5 secondi.Abbiamo completato 1000 thread in 5 secondi, e solo 1 thread è riuscito ad acquisire il bloccoDopo 6 secondi di attesa, il blocco si sblocca automaticamente e puoi vedere che il secondo compito ha ottenuto con successo il blocchetto, e immediatamente rilasciato il blocco, e il codice successivo ha ottenuto con successo il blocco.

Lo script lua per ottenere il blocco è il seguente:

Lo script lua per liberare il blocco è il seguente:

Codice dell'interfaccia:

Scarica codice sorgente:Il login del link ipertestuale è visibile.

Modifica "[Pratica] ASP.NET Core basato su Redis distributed lock flash sale" è implementato utilizzando questo articolo, e il nostro sito web lo simula10000 articoli, e poi scrisse una console per simulare il tempo della richiesta HTTPIl tutto esaurito si completa in 6 secondi, come mostrato nella figura sottostante:

[Combattimento reale] ASP.NET Core si basa sulla vendita flash di lucchetto distribuita di Redis
https://www.itsvse.com/thread-9397-1-1.html



Modifica il codice della richiesta di simulazione di test:



(Fine)




Precedente:Kafka imposta manualmente l'offset
Prossimo:ASP.NET Core riceve il link completo dell'URL richiesta
Pubblicato il 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:}
Pubblicato il 11-6-2022 13:36:33 |
Grazie, grazie
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com