See artikkel on masintõlke peegelartikkel, palun klõpsake siia, et hüpata algse artikli juurde.

Vaade: 13217|Vastuse: 1

Liidese idempotentsuse probleemid

[Kopeeri link]
Postitatud 04.12.2018 13:29:37 | | |
【Probleemi kirjeldus】
Kui kasutajad kasutavad APP-i, jääb leht väga kinni ja nad klikkivad juhuslikult, sest liides ei tee korduvaid esitamisi, tekib mitu identset päringut, teenusekihis ei lisa üks lõim täielikuks ja teine lõim kontrollib tühi. Nii et panin ka ühe sisse. Alguses oli kõigil üks, kuid müüjal oli kolm, mis põhjustas ärilisi loogikavigu. Pahatahtlike esituste töötlemiseks saab seda teha front-end osas ning ka küpseid lahendusi tagapool.

【Lahendus】1. Kasuta unikaalsuspiiranguid tehingute idempotentsuse probleemi lahendamiseks, sea unikaalsuspiirangud ning kui esineb korduvate commit'ide stsenaarium, siis erandid unikaalsuspiirangutele visatakse andmebaasi tasemele ning äriloogikat ei hävitata. Mitme välja koostamise unikaalsuspiirangud on samuti aktsepteeritavad.
Hüperlingi sisselogimine on nähtav.

Ülaltoodud meetod on mõeldud andmebaasi tasemel duplikaatide vastaste seadistuste loomiseks.

2. Rakenda dubleerimisvastased seaded kooditasemel. Sageli öeldakse, et andmebaasi unikaalsuse piirang mõjutab andmete sisestamise efektiivsust, sest iga lisamine nõuab hinnangut andmebaasi tasandil. Seega, kooditaseme järgi otsustades, on kooditasemel tavapärane praktika valida esmalt ja seejärel sisestada, kuid kui esineb kõrge samaaegsuse stsenaarium, esineb ikkagi korduvaid commit'e. Saad lisada loogikakoodile sünkroniseeritud, nii et kõrge samaaegsuse korral vali esmalt ja siis insert hakkab kehtima. Aga efektiivsus ei ole kõrge ja paralleel muutub seriaalseks. Võib kasutada DCL-lukumehhanismi. (Kas oled märganud, et ühe objekti loomise meetod kopeerimisjuhtumi režiimis on väga sarnane, esmalt otsusta, kas objekt eksisteerib, kui seda ei ole, loo see, muidu ära loo seda), loomulik DCL-lukustusmehhanism on tõhusam.

#分布式锁
Probleemi lahendamiseks saab kasutada ka hajutatud lukke, mida kasutavad sageli Redis ja Zookeeper. See osa selgitab, kuidas rakendada hajutatud lukke Redis'i abil.
Redis'is on olemas setNx käsuoperatsioon, kui seda ei eksisteeri, on see seatud väärtus ja tagastatakse 1. Kui see eksisteerib, siis see ei määra ja tagastab väärtuse 0.
Kasutades Redis'i ühe lõime funktsiooni, muudetakse kõrge paralleelsuse stseen sõnumijärjekorra kaudu jadamiseks.
Kuid hajutatud lukkudes on lõkse, seega pead tähelepanelik olema.
Hüperlingi sisselogimine on nähtav.
3. MVCC mehhanism?

3.1 Mis on MVCC mehhanism?
MVCC on mitme versiooniga samaaegsuse juhtimismehhanism.

3.2 Milliseid probleeme saab lahendada?
Lukustusmehhanism suudab kontrollida samaaegseid operatsioone, kuid selle süsteemi üldkoormus on suur ning MVCC saab enamasti asendada reataseme lukke, mis vähendab süsteemi üldkoormust ja parandab jõudlust.

Hüperlingi sisselogimine on nähtav.

4. Sõnumites esineb ka idempotentsuse probleem

Näiteks, kuidas vältida sõnumite korduvat tarbimist?

MQ sõnumite vahendustarkvaras tuleb neid mõista ja mõista.




Eelmine:Juuksuritöö Õpi juuksuritööd, tule sisse ja vaata
Järgmine:Vanemluse lugu Video Vanemluse lugu Heli Vanemluse lugu Pildiraamat Vanemluse teadmiste kogu
 Üürileandja| Postitatud 17.03.2021 10:27:09 |
VolitusedProgrammeerimises iseloomustab idempotentset operatsiooni see, et selle suvalised mitmekordsed täitmised avaldavad sama mõju kui üks täitmine.
Disclaimer:
Kõik Code Farmer Networki poolt avaldatud tarkvara, programmeerimismaterjalid või artiklid on mõeldud ainult õppimiseks ja uurimistööks; Ülaltoodud sisu ei tohi kasutada ärilistel ega ebaseaduslikel eesmärkidel, vastasel juhul kannavad kasutajad kõik tagajärjed. Selle saidi info pärineb internetist ning autoriõiguste vaidlused ei ole selle saidiga seotud. Ülaltoodud sisu tuleb oma arvutist täielikult kustutada 24 tunni jooksul pärast allalaadimist. Kui sulle programm meeldib, palun toeta originaaltarkvara, osta registreerimist ja saa paremaid ehtsaid teenuseid. Kui esineb rikkumist, palun võtke meiega ühendust e-posti teel.

Mail To:help@itsvse.com