Replikacja synchroniczna a asynchroniczna
Zrozumieją Państwo kompromisy między trwałością a opóźnieniami w synchronicznej i asynchronicznej replikacji fizycznej w PostgreSQL.
Replikacja synchroniczna a asynchroniczna to bezpłatna lekcja Advanced PostgreSQL: Indexing, Partitioning, Replication na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Advanced PostgreSQL: Indexing, Partitioning, Replication, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Advanced PostgreSQL: Indexing, Partitioning, Replication zawiera 4 lekcji w sumie.
Części tej lekcji nie zostały jeszcze przetłumaczone i są wyświetlane po angielsku.
Two Modes of Streaming
Physical streaming replication can run in two modes: asynchronous (the default) and synchronous. They differ in when the primary considers a commit complete.
Asynchronous Replication
In async mode the primary commits as soon as the WAL is flushed locally. It does not wait for the standby. This is fast but a crash can lose the most recent commits not yet shipped.
Synchronous Replication
In sync mode the primary waits until at least one standby confirms it received (or applied) the WAL before reporting commit success. This guarantees zero data loss for confirmed commits at the cost of extra latency.
Configuring Sync Standbys
Name your standbys with application_name and list them in synchronous_standby_names on the primary.
-- on the primary, in postgresql.conf
synchronous_standby_names = 'standby1, standby2';Quorum-based Sync
You can require any N of several standbys to confirm, balancing durability and availability.
synchronous_standby_names = 'ANY 1 (standby1, standby2)';synchronous_commit Levels
The synchronous_commit setting controls how far a commit must travel:
off/local— local onlyremote_write— standby received WALon— standby flushed WAL to diskremote_apply— standby applied WAL (visible on replica)
Per-transaction Control
This setting can be changed per transaction, letting unimportant writes go fast while critical writes wait for confirmation.
SET synchronous_commit = 'remote_apply';
INSERT INTO payments (amount) VALUES (100);Availability Risk of Sync
If the only synchronous standby goes down, commits on the primary will block until a standby returns. Always pair sync replication with multiple candidates or quorum settings.
Checking Replication State
Inspect the live state from the primary using pg_stat_replication.
SELECT application_name, state, sync_state
FROM pg_stat_replication;Choosing a Mode
Use async for throughput and geographically distant replicas. Use sync when losing even one committed transaction is unacceptable, such as financial ledgers.
Latency Reality
Synchronous commit latency is roughly the network round-trip to the standby plus its fsync time. Keeping sync standbys on a low-latency link is essential.
Quick Check
What is the key trade-off of synchronous replication?
Recap
You compared asynchronous and synchronous replication, configured synchronous_standby_names and synchronous_commit levels, and learned the durability-vs-latency-vs-availability trade-offs.
Często zadawane pytania
Czy lekcja „Replikacja synchroniczna a asynchroniczna” jest bezpłatna?
Tak — pełny tekst „Replikacja synchroniczna a asynchroniczna” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Advanced PostgreSQL: Indexing, Partitioning, Replication, przejdź na CoddyKit PRO. Kurs Advanced PostgreSQL: Indexing, Partitioning, Replication zawiera 4 lekcji w sumie.
Co nauczysz się w „Replikacja synchroniczna a asynchroniczna”?
Zrozumieją Państwo kompromisy między trwałością a opóźnieniami w synchronicznej i asynchronicznej replikacji fizycznej w PostgreSQL. Ćwiczysz Advanced PostgreSQL: Indexing, Partitioning, Replication z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Advanced PostgreSQL: Indexing, Partitioning, Replication?
Nie wymagamy żadnego doświadczenia. Advanced PostgreSQL: Indexing, Partitioning, Replication w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.
Ile czasu zajmuje lekcja „Replikacja synchroniczna a asynchroniczna”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Advanced PostgreSQL: Indexing, Partitioning, Replication?
Tak. Każda lekcja Advanced PostgreSQL: Indexing, Partitioning, Replication zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Zrozumienie koncepcji replikacji
- Replikacja fizyczna (strumieniowa)
- Konfigurowanie serwera zapasowego
- Replikacja synchroniczna a asynchroniczna