Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 13217|Odpoveď: 1

Problémy s idempotenciou rozhrania

[Kopírovať odkaz]
Zverejnené 4. 12. 2018 13:29:37 | | |
【Popis problému】
Keď používatelia používajú aplikáciu, stránka je veľmi zaseknutá a klikajú náhodne, pretože rozhranie nevykonáva opakované odosielania, bude tam niekoľko identických požiadaviek, v servisnej vrstve jedno vlákno nevkladá kompletné a druhé sa kontroluje ako prázdne. Tak som si tiež jednu vložil. Pôvodne mal každý jednu, ale predajca mal tri, čo viedlo k chybám v obchodnej logike. Pri spracovaní škodlivých príspevkov sa to dá vykonať vo front-end časti, a v back-end časti môžu byť aj zrelé riešenia.

【Solution】1. Použiť obmedzenia jedinečnosti na riešenie problému idempotencie transakcií, nastaviť obmedzenia jedinečnosti a ak nastane scenár opakovaných commitov, výnimky z obmedzení jedinečnosti budú vyhodené na úrovni databázy a obchodná logika nebude zničená. Obmedzenia jedinečnosti na zloženie viacerých polí sú tiež prijateľné.
Prihlásenie na hypertextový odkaz je viditeľné.

Vyššie uvedené slúži na vytvorenie nastavení proti duplicitám na úrovni databázy.

2. Realizujte nastavenia proti duplikácii na úrovni kódu. Často sa hovorí, že obmedzenie jedinečnosti databázy ovplyvní efektivitu vkladania dát, pretože každé vloženie vyžaduje posúdenie na úrovni databázy. Preto, podľa úrovne kódu, bežnou praxou na úrovni kódu je najprv vybrať a potom vložiť, ale ak je scenár vysokej súbežnosti, stále sa opakujú commity. Môžete pridať synchronizáciu do logického kódu, takže v scenároch s vysokou súbežnosťou najprv vyberiete a až potom sa vloži vloženie. Efektivita však nie je vysoká a paralela sa stáva sériovou. Môže sa použiť mechanizmus zámku DCL. (Zistili ste, že spôsob vytvorenia jedného objektu v režime kopírovania prípadu je veľmi podobný, najprv posúdiť, či objekt existuje, ak neexistuje, vytvorte ho, inak ho nevytvárajte), prirodzený mechanizmus DCL zámku je efektívnejší.

#分布式锁
Na riešenie problému sa dajú použiť aj distribuované zámky, ktoré bežne používajú Redis a Zookeeper. Táto sekcia vysvetľuje, ako implementovať distribuované zámky pomocou Redis.
V Redise existuje príkazová operácia setNx, ak neexistuje, je to nastavená hodnota a vráti sa 1. Ak existuje, nenastavuje sa a vracia 0.
Využitím funkcie jednovláknového vedenia v Reduis sa scéna s vysokou súbežnosťou mení na sériové cez frontu správ.
Avšak distribuované zámky majú svoje úskalia, takže je potrebné dávať pozor.
Prihlásenie na hypertextový odkaz je viditeľné.
3. Mechanizmus MVCC?

3.1 Čo je mechanizmus MVCC?
MVCC je viacverziový mechanizmus riadenia súbežnosti.

3.2 Aké problémy sa dajú vyriešiť?
Zamykací mechanizmus dokáže riadiť súbežné operácie, ale jeho režijné náklady sú veľké a MVCC môže vo väčšine prípadov nahradiť zámky na úrovni riadkov, čo môže znížiť režijné náklady systému a zlepšiť výkon.

Prihlásenie na hypertextový odkaz je viditeľné.

4. Existuje tiež problém idempotencie v správach

Napríklad, ako zabrániť opakovanému konzumovaniu správ?

V middleware správ v MQ musia byť tieto veci pochopené a pochopené.




Predchádzajúci:Kaderníctvo Nauč sa kaderníctvo, príď a pozri sa
Budúci:Príbeh o rodičovstve Video Príbeh o rodičovstve Audio Príbeh o rodičovstve Obrázková kniha Zbierka vedomostí o rodičovstve
 Prenajímateľ| Zverejnené 17. 3. 2021 10:27:09 |
PrávomociV programovaní sa idempotentná operácia vyznačuje tým, že jej ľubovoľné viacnásobné vykonania majú rovnaký efekt ako jedno vykonanie.
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com