Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 13217|Svar: 1

Gränssnittsproblem med idempotens

[Kopiera länk]
Publicerad på 2018-12-04 13:29:37 | | |
【Problembeskrivning】
När användare använder APPEN fastnar sidan mycket och de klickar slumpmässigt, eftersom gränssnittet inte gör upprepade inlämningar, det kommer att finnas flera identiska förfrågningar, i servicelagret infogas inte en tråd fullständig, och den andra tråden kontrollerar tom. Så jag satte också in en. Ursprungligen hade alla en, men en försäljare hade tre, vilket resulterade i affärslogikfel. För hantering av skadliga inskickade inlägg kan det göras i front-end-delen, och det kan även finnas mogna lösningar i backend-delen.

【Lösning】1. Använd unikhetsbegränsningar för att lösa idempotensproblemet för transaktioner, sätt unikhetsbegränsningar, och om det finns ett scenario med upprepade commits, kommer undantag från unikhetsbegränsningar att läggas till på databasnivå, och affärslogiken kommer inte att förstöras. Unikhetsbegränsningar för sammansättningen av flera fält är också acceptabla.
Inloggningen med hyperlänken är synlig.

Ovanstående är för att göra anti-dupliceringsinställningar på databasnivå.

2. Uppnå anti-dupliceringsinställningar på kodnivå. Många gånger sägs det att databasens unikhetsbegränsning påverkar effektiviteten i datainsättning, eftersom varje insättning kräver en bedömning på databasnivå. Därför, utifrån kodnivån, är den vanliga praxisen på kodnivå att först välja och sedan infoga, men om det finns ett scenario med hög samtidighet kommer det ändå att förekomma upprepade commits. Du kan lägga till synkroniserat i logikkoden, så att i scenarier med hög samtidighet träder först och sedan insättning i kraft. Men effektiviteten är inte hög, och parallellen blir seriel. DCL-låsmekanism kan användas. (Har du märkt att metoden att skapa ett enda objekt i kopieringsfallet är mycket lik, först bedöm om objektet existerar, om det inte finns, skapa det, annars skapa det inte), den naturliga DCL-låsmekanismen är mer effektiv.

#分布式锁
Distribuerade lås kan också användas för att lösa problemet, vilket ofta används av Redis och Zookeeper. Detta avsnitt förklarar hur man implementerar distribuerade lås med hjälp av Redis.
Det finns en setNx-kommandooperation i Redis, om den inte finns är det ett setvärde, och 1 returneras. Om den existerar, sätter den sig inte, och returnerar 0.
Genom att använda Redis enkeltrådningsfunktion omvandlas högsamtidighetsscenen till en seriell via meddelandekön.
Det finns dock fallgropar med distribuerade lås, så du måste vara uppmärksam.
Inloggningen med hyperlänken är synlig.
3. MVCC-mekanism?

3.1 Vad är MVCC-mekanismen?
MVCC är en multiversions-samtidskontrollmekanism.

3.2 Vilka problem kan lösas?
Låsmekanismen kan styra samtidiga operationer, men dess systemöverhead är stor, och MVCC kan i de flesta fall byta ut radnivålås, vilket kan minska systemöverhuvudet och förbättra prestandan.

Inloggningen med hyperlänken är synlig.

4. Det finns också ett problem med idempotens i budskapen

Till exempel, hur förhindrar man upprepad konsumtion av meddelanden?

I meddelandemellanvaran i MQ måste dessa vara förstådda och förstodliga.




Föregående:Frisörutbildning, lär dig frisör, kom in och titta
Nästa:Föräldraberättelse Video Föräldraberättelse Ljud Föräldraberättelse Bilderbok Samling av föräldrakunskap
 Hyresvärd| Publicerad på 2021-03-17 10:27:09 |
BefogenheterInom programmering kännetecknas en idempotent operation av att dess godtyckliga multipla körningar har samma effekt som en enskild exekvering.
Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com