Hajautettujen lukkojen sovellusskenaariot: Palveluiden kehityksen myötä yksittäiset sovellukset muuttuvat klustereiksi, hajautetut lukot ratkaisevat eri prosessien (säikeiden) toiminnan samalla resurssilla samanaikaisesti, ja joidenkin palveluiden on vaadittava yksi säike toimiakseen, esimerkiksi: talletusmäärien muutokset, hyödykevaraston muutokset jne.
Arvostelu:
Edellisessä artikkelissa "[Practice]ASP.NET Core Based on Redis Distributed Lock Flash Kill", kun lisäsimme lukon, otimme myös käyttöön taustasäikeen pidentämään lukitusaikaa, jotta lukituksen vapauttamisen yhteydessä muiden säikeiden käyttämä lukko ei vahingossa poistuisi.
Kun olet oppinut Redisiä käyttämään Lua-skriptejä, voit helposti käyttää skriptejä asutuslukkojen ja lukkojen vapauttamiseen.
Katsotaanpa ensin renderöintiä seuraavasti:
Avasimme ensin 1000 rinnakkaista säiettä kilpaillaksemme lukosta, ja lukko vanhentui viideksi sekunniksi.Saimme valmiiksi 1000 lankaa viidessä sekunnissa, ja vain yksi lanka onnistui lukitsemaan6 sekunnin odotuksen jälkeen lukko vapautetaan automaattisesti, ja näet, että toinen tehtävä on onnistuneesti saanut lukon, vapauttanut lukon välittömästi, ja seuraava koodi on saanut lukon onnistuneesti.
Lua-skripti lukon saamiseksi on seuraava:
Lua-skripti lukon vapauttamiseksi on seuraava:
Rajapintakoodi:
Lähdekoodin lataus:Hyperlinkin kirjautuminen on näkyvissä.
"[Practice] ASP.NET Core based on Redis distributed lock flash sale" toteutetaan tämän artikkelin avulla, ja verkkosivustomme simuloi sitä10000 tuotetta, ja kirjoitti sitten konsolin simuloimaan HTTP-pyyntöaikaaLoppuunmyyty elokuva on valmis 6 sekunnissa, kuten alla olevassa kuvassa näkyy:
Muokkaa testisimulaation pyyntökoodia:
(Loppu)
|