Skalering av lesing med Hot Standby og lastbalansering
Lær hvordan De kan avlaste lesetrafikk til streaming-replikaer i standby, forstå replikeringsetterslep og rute spørringer mellom primærserveren og replikaene for horisontal leseskalering.
Skalering av lesing med Hot Standby og lastbalansering er en gratis leksjon i Ytelse og spørringsoptimalisering i PostgreSQL på CoddyKit. Dette er leksjon 4 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Ytelse og spørringsoptimalisering i PostgreSQL, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Ytelse og spørringsoptimalisering i PostgreSQL inneholder totalt 4 leksjoner.
Hvorfor skal lesing skaleres?
En enkelt primærserver kan bli en flaskehals når lesetung trafikk øker. Ved å sende SELECT-spørringer til lesereplikater frigjør De primærserveren til å håndtere skrivinger og kan skalere lesing horisontalt ved å legge til flere standby-servere.
Grunnleggende om hot standby
En hot standby er en strømmende replika som godtar skrivebeskyttede spørringer samtidig som den kontinuerlig tar i bruk endringer mottatt fra primærserveren. Den holder seg nesten synkronisert via write-ahead-loggen (WAL).
Aktivere lesespørringer på en standby
På standby-serveren må hot_standby være aktivert (det er standard i moderne versjoner), slik at den svarer på spørringer i stedet for bare å spille av WAL i stillhet.
SHOW hot_standby;Oppdage recovery-modus
Applikasjonen kan spørre enhver node om den er en skrivebeskyttet standby. Et true-resultat betyr at De ikke må sende skrivinger hit.
SELECT pg_is_in_recovery();Forstå replikeringsetterslep
Standby-servere tar i bruk WAL litt etter primærserveren, slik at en lesing kanskje ikke ser den aller siste skrivingen. Dette avviket kalles replikeringsetterslep. For det meste av lesetrafikken er det ufarlig, men flyter med lesing etter skriving krever omtanke.
Måle etterslep
På en standby-server kan De sammenligne hvor langt avspillingen ligger etter den sist mottatte WAL-posisjonen for å anslå etterslepet i tid.
SELECT now() - pg_last_xact_replay_timestamp() AS replay_lag;Ruting i applikasjonen
Det enkleste mønsteret bruker to tilkoblingspooler: én til primærserveren for skrivinger og én til replikaer for lesinger. Applikasjonen velger basert på operasjonen.
Konsistens etter skriving
Rett etter at en bruker har skrevet data, kan lesing fra en replika med etterslep vise utdaterte resultater. Mulige tiltak:
- Rout brukerens neste lesinger til primærserveren en kort stund
- Vent til replikaen har innhentet skrivingens WAL-posisjon
Lastbalansering mellom replikaer
En pooler eller proxy som PgBouncer, Pgpool-II eller HAProxy kan fordele lesetilkoblinger mellom flere standby-servere, spre belastningen og sørge for failover hvis en replika går ned.
Avveininger og begrensninger
Lesereplikaer er kraftige, men ikke magiske:
- De skalerer ikke skrivekapasiteten
- Etterslep betyr eventual consistency, ikke umiddelbar konsistens, på replikaer
- Lange spørringer på en standby-server kan komme i konflikt med WAL-avspilling
Planlegg rutingen med disse realitetene i mente.
Overvåke replikering fra primærserveren
Primærserveren viser alle tilkoblede standby-servere i en statistikkvisning, inkludert hvor langt etter hver av dem er. Følg med her for å oppdage en replika som sakker farlig langt etter.
SELECT client_addr, state,
replay_lag
FROM pg_stat_replication;Hurtigsjekk
Test kunnskapene Deres om skalering av lesing.
Oppsummering
De har lært om skalering av lesing:
- Hot standby-servere betjener skrivebeskyttede spørringer mens de spiller av WAL
pg_is_in_recovery()identifiserer en standby-server- Replikeringsetterslep betyr at replikaer kan være litt utdaterte
- Rout skrivinger til primærserveren og lesinger til replikaer; håndter lesing etter skriving
- Bruk en proxy til lastbalansering og failover mellom replikaer
Lær deg SQL med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 22
- Leksjoner
- 88
Ofte stilte spørsmål
Er leksjonen «Skalering av lesing med Hot Standby og lastbalansering» gratis?
Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Ytelse og spørringsoptimalisering i PostgreSQL, inkludert «Skalering av lesing med Hot Standby og lastbalansering», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i Ytelse og spørringsoptimalisering i PostgreSQL inneholder totalt 4 leksjoner.
Hva lærer jeg i «Skalering av lesing med Hot Standby og lastbalansering»?
Lær hvordan De kan avlaste lesetrafikk til streaming-replikaer i standby, forstå replikeringsetterslep og rute spørringer mellom primærserveren og replikaene for horisontal leseskalering. Du øver på Ytelse og spørringsoptimalisering i PostgreSQL med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Ytelse og spørringsoptimalisering i PostgreSQL?
Ingen tidligere erfaring er nødvendig. Ytelse og spørringsoptimalisering i PostgreSQL på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 4 av 4.
Hvor lang tid tar leksjonen «Skalering av lesing med Hot Standby og lastbalansering»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Ytelse og spørringsoptimalisering i PostgreSQL-leksjonen?
Ja. Alle Ytelse og spørringsoptimalisering i PostgreSQL-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Connection pooling med PgBouncer
- Replikeringsstrategier (strømming, logisk)
- Sharding og distribuert PostgreSQL
- Skalering av lesing med Hot Standby og lastbalansering