Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 13217|Válasz: 1

Interfész idempotencia problémái

[Linket másol]
Közzétéve 2018. 12. 04. 13:29:37 | | |
【Problémaleírás】
Amikor a felhasználók az APP-ot használják, az oldal nagyon elakad, és véletlenszerűen kattint, mert a felület nem végez ismétlődő beküldéseket, több azonos kérés történik, a szolgáltatási rétegben az egyik szál nem kerül be, hogy befejezett, a másik pedig üres lesz. Ezért behelyeztem egyet is. Eredetileg mindenkinek volt egy, de egy értékesítőnek három, ami üzleti logikai hibákhoz vezetett. A rosszindulatú beküldések feldolgozása a front-end részben is megvalósítható, és a háttérben is lehetnek érett megoldások.

【Megoldás】1. Használjunk egyediségi korlátokat a tranzakciók idempotencia-problémájának megoldására, állítsunk be egyediségi korlátokat, és ha ismétlődő commit-ek közül adódik elő, az egyediségi korlátozások kivételei az adatbázis szintjén kerülnek elő, és az üzleti logika nem pusztul meg. Több mező összetételére vonatkozó egyediségi korlátok is elfogadhatók.
A hiperlink bejelentkezés látható.

A fentiek az adatbázis szintjén duplikátum elleni beállításokat hoznak létre.

2. Valósítsd meg a duplikációellenes beállításokat a kód szintjén. Sokszor mondják, hogy az adatbázis egyediségkorlátozása befolyásolja az adatbehelyezés hatékonyságát, mivel minden beillesztéshez adatbázis szinten ítélkezés szükséges. Ezért, a kódszint alapján a kód szintjén a szokásos gyakorlat, hogy először kiválasztják, majd beillesztenek, de ha magas a párhuzamosság esetén, akkor is ismétlődő commit-ek lesznek. Szinkronizált logikai kódot adhatsz hozzá, így magas egyidejű állapotban először válassz, majd beilleszteni, akkor lép életbe. De a hatékonyság nem magas, és a párhuzam sorozatossá válik. Használható a DCL zármechanizmus. (Tapasztaltad már, hogy egyetlen objektum létrehozásának módja a másolási eset módban nagyon hasonló, először ítéld meg, hogy létezik-e az objektum, ha nem létezik, hozd létre, vagy egyébként ne hozd létre), a természetes DCL zármechanizmus hatékonyabb.

#分布式锁
A probléma megoldására elosztott zárak is használhatók, amelyeket gyakran használnak a Redis és a Zookeeper. Ez a rész elmagyarázza, hogyan lehet elosztott zárokat implementálni Redis segítségével.
A Redisben van egy setNx parancsművelet, ha nem létezik, akkor egy halmazérték, és az 1 visszatér. Ha létezik, nem állít be, és 0-t ad vissza.
A Redis egyszálas funkcióját kihasználva a magas párhuzamos jelenet az üzenetsoron keresztül sorozatossá alakul.
Azonban vannak buktatói a szétosztott zárakban, ezért figyelned kell.
A hiperlink bejelentkezés látható.
3. MVCC mechanizmus?

3.1 Mi az MVCC mechanizmus?
Az MVCC egy többverziós egyidejű vezérlő mechanizmus.

3.2 Milyen problémákat lehet megoldani?
A zárolási mechanizmus képes az egyidejű műveleteket irányítani, de a rendszer túlterhelése nagy, és az MVCC a legtöbb esetben helyettesítheti a sorszintű záratokat, ami csökkentheti a rendszer túlterhelését és javíthatja a teljesítményt.

A hiperlink bejelentkezés látható.

4. Az üzenetekben is fennáll az idempotencia problémája

Például, hogyan lehet megakadályozni az ismétlődő üzenetfogyasztást?

Az MQ üzenetközmű szoftverében ezeket meg kell érteni és érteni.




Előző:Fodrász Tanulj fodrászt Gyere be, nézd meg
Következő:Szülői történet videó Szülői történet Hang Szülői történet Képes könyv Szülői Tudás Gyűjtemény
 Háziúr| Közzétéve 2021. 03. 17. 10:27:09 |
HatáskörökA programozásban az idempotens műveletet az jellemzi, hogy tetszőleges többszörös végrehajtása ugyanazt a hatást váltja ki, mint egyetlen végrehajtás.
Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com