Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 13217|Atsakyti: 1

Sąsajos idempotencijos problemos

[Kopijuoti nuorodą]
Paskelbta 2018-12-04 13:29:37 | | |
【Problemos aprašymas】
Kai vartotojai naudojasi APP, puslapis yra labai įstrigęs, ir jie spustelės atsitiktinai, nes sąsaja neatlieka pakartotinių pateikimų, bus kelios identiškos užklausos, paslaugų sluoksnyje viena gija neįterpiama baigta, o kita gija patikrinama, tuščia. Taigi aš taip pat įterpiau vieną. Iš pradžių visi turėjo vieną, bet pardavėjas turėjo tris, todėl atsirado verslo logikos klaidų. Kenkėjiškų pateikimų apdorojimas gali būti atliekamas priekinėje dalyje, o galinėje dalyje taip pat gali būti brandžių sprendimų.

【Sprendimas】1. Naudokite unikalumo apribojimus, kad išspręstumėte sandorių idempotencijos problemą, nustatykite unikalumo apribojimus, o jei yra pakartotinių įsipareigojimų scenarijus, unikalumo apribojimų išimtys bus išmestos duomenų bazės lygiu, o verslo logika nebus sunaikinta. Taip pat priimtini kelių laukų sudėties unikalumo apribojimai.
Hipersaito prisijungimas matomas.

Aukščiau pateikta informacija yra nustatyti apsaugos nuo dublikatų nustatymus duomenų bazės lygiu.

2. Realizuokite apsaugos nuo dubliavimo nustatymus kodo lygiu. Daug kartų sakoma, kad duomenų bazės unikalumo apribojimas turės įtakos duomenų įterpimo efektyvumui, nes kiekvienam įterpimui reikalingas sprendimas duomenų bazės lygiu. Todėl, sprendžiant iš kodo lygio, įprasta praktika kodo lygyje yra pirmiausia pasirinkti, o tada įterpti, tačiau jei yra didelis sutapimo scenarijus, vis tiek bus kartojami įsipareigojimai. Galite įtraukti sinchronizuotą į loginį kodą, kad didelio sutapimo scenarijuose pirmiausia pasirinktumėte, o tada įsigaliotų įterpimas. Tačiau efektyvumas nėra didelis, o paralelė tampa nuosekli. Galima naudoti DCL užrakto mechanizmą. (Ar pastebėjote, kad vieno objekto kūrimo būdas kopijavimo dėklo režimu yra labai panašus, pirmiausia spręskite, ar objektas egzistuoja, jei jo nėra, sukurkite jį, kitaip jo nekurkite), natūralus DCL užrakto mechanizmas yra efektyvesnis.

#分布式锁
Problemai išspręsti taip pat gali būti naudojamos paskirstytos spynos, kurias dažniausiai naudoja "Redis" ir "Zookeeper". Šiame skyriuje paaiškinama, kaip įdiegti paskirstytus užraktus naudojant Redis.
"Redis" yra komandos operacija setNx, jei jos nėra, tai yra nustatyta reikšmė ir grąžinama 1. Jei jis yra, jis nenustatomas ir grąžina 0.
Naudojant vienos gijos funkciją Redis, didelio sutapimo scena paverčiama serija per pranešimų eilę.
Tačiau paskirstytose spynose yra spąstų, todėl reikia atkreipti dėmesį.
Hipersaito prisijungimas matomas.
3. MVCC mechanizmas?

3.1 Kas yra MVCC mechanizmas?
MVCC yra kelių versijų lygiagrečios kontrolės mechanizmas.

3.2 Kokias problemas galima išspręsti?
Užrakinimo mechanizmas gali valdyti vienu metu vykdomas operacijas, tačiau jo sistemos pridėtinės išlaidos yra didelės, o MVCC daugeliu atvejų gali pakeisti eilės lygio spynas, o tai gali sumažinti sistemos pridėtines išlaidas ir pagerinti našumą.

Hipersaito prisijungimas matomas.

4. Taip pat yra idempotencijos problema pranešimuose

Pavyzdžiui, kaip išvengti pakartotinio pranešimų vartojimo?

MQ pranešimo tarpinėje programinėje įrangoje jie turi būti suprantami ir suprantami.




Ankstesnis:Kirpykla Sužinokite kirpykla ateikite ir pažiūrėkite
Kitą:Tėvystės istorija Video Tėvystės istorija Garso tėvystės istorija Paveikslėlių knyga Tėvystės žinių kolekcija
 Savininkas| Paskelbta 2021-03-17 10:27:09 |
ĮgaliojimaiProgramuojant idempotentinė operacija pasižymi tuo, kad jos savavališki keli vykdymai turi tokį patį poveikį kaip ir vienas vykdymas.
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com