Denne artikel er en spejling af maskinoversættelse, klik venligst her for at springe til den oprindelige artikel.

Udsigt: 13217|Svar: 1

Interface-idempotensproblemer

[Kopier link]
Opslået på 04/12/2018 13.29.37 | | |
【Problembeskrivelse】
Når brugere bruger APPEN, sidder siden meget fast, og de klikker tilfældigt, fordi grænsefladen ikke laver gentagne indsendelser, der vil være flere identiske forespørgsler i servicelaget, hvor én tråd ikke indsættes fuldendt, og den anden tråd tjekker tom. Så jeg indsatte også en. Oprindeligt havde alle én, men en sælger havde tre, hvilket resulterede i forretningslogiske fejl. Behandlingen af ondsindede indsendelser kan ske i front-end-delen, og der kan også være modne løsninger i back-end-delen.

【Løsning】1. Brug unikhedsbegrænsninger til at løse idempotensproblemet for transaktioner, sæt unikhedsbegrænsninger, og hvis der er et scenarie med gentagne commits, vil undtagelser fra unikhedsbegrænsninger blive kastet på databaseniveau, og forretningslogikken vil ikke blive ødelagt. Unikhedsbegrænsninger på sammensætningen af flere felter er også acceptable.
Hyperlink-login er synlig.

Ovenstående er for at lave anti-duplikerede indstillinger på databaseniveau.

2. Indse anti-duplikationsindstillinger på kodeniveau. Mange gange siges det, at databasens unikhedsbegrænsning vil påvirke effektiviteten af dataindsættelse, fordi hver indsættelse kræver en vurdering på databaseniveau. Derfor er den almindelige praksis på kodeniveauet at vælge først og derefter indsætte, men hvis der er et scenarie med høj samtidighed, vil der stadig være gentagne commits. Du kan tilføje synkroniseret til logikkoden, så i scenarier med høj samtidighed træder først og derefter indsættelse i kraft. Men effektiviteten er ikke høj, og parallellen bliver seriel. DCL-låsemekanismen kan anvendes. (Har du oplevet, at metoden til at skabe et enkelt objekt i kopieringstilfælde er meget lignende, først vurder om objektet eksisterer, hvis det ikke eksisterer, så skab det, ellers lad være med at oprette det), den naturlige DCL-låsemekanisme er mere effektiv.

#分布式锁
Distribuerede låse kan også bruges til at løse problemet, som ofte anvendes af Redis og Zookeeper. Dette afsnit forklarer, hvordan man implementerer distribuerede låse ved hjælp af Redis.
Der findes en setNx-kommandooperation i Redis; hvis den ikke eksisterer, er det en sætværdi, og 1 returneres. Hvis den eksisterer, sættes den ikke, og returnerer 0.
Ved at udnytte Redis single-threading-funktion bliver high-concurrency-scenen omdannet til en seriel gennem beskedkøen.
Der er dog faldgruber ved fordelte låse, så du skal være opmærksom.
Hyperlink-login er synlig.
3. MVCC-mekanisme?

3.1 Hvad er MVCC-mekanismen?
MVCC er en multiversions-samtidighedskontrolmekanisme.

3.2 Hvilke problemer kan løses?
Låsemekanismen kan styre samtidige operationer, men dens systemoverhead er stor, og MVCC kan i de fleste tilfælde erstatte låse på rækkeniveau, hvilket kan reducere systemoverhead og forbedre ydeevnen.

Hyperlink-login er synlig.

4. Der er også et problem med idempotens i budskaber

For eksempel, hvordan forhindrer man gentagen forbrug af beskeder?

I beskedmiddleware i MQ skal disse forstås og forstås.




Tidligere:Frisøruddannelse – lær frisør, kom ind og kig på
Næste:Forældrehistorie Video Forældrehistorie Lyd Forældrehistorie Billedbog Forældreskabsvidenssamling
 Udlejer| Opslået på 17/03/2021 10.27.09 |
BeføjelserI programmering kendetegnes en idempotent operation ved, at dens vilkårlige multiple udførelser har samme effekt som en enkelt eksekvering.
Ansvarsfraskrivelse:
Al software, programmeringsmaterialer eller artikler udgivet af Code Farmer Network er kun til lærings- og forskningsformål; Ovenstående indhold må ikke bruges til kommercielle eller ulovlige formål, ellers skal brugerne bære alle konsekvenser. Oplysningerne på dette site kommer fra internettet, og ophavsretstvister har intet med dette site at gøre. Du skal slette ovenstående indhold fuldstændigt fra din computer inden for 24 timer efter download. Hvis du kan lide programmet, så understøt venligst ægte software, køb registrering og få bedre ægte tjenester. Hvis der er nogen overtrædelse, bedes du kontakte os via e-mail.

Mail To:help@itsvse.com