Replika Baca dan Pengarahan Koneksi
Arahkan lalu lintas hanya-baca ke replika dengan PgBouncer atau driver cerdas, dan terima konsekuensi data yang mungkin belum mutakhir
Replika Baca dan Pengarahan Koneksi adalah pelajaran SQL Academy gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar SQL Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus SQL Academy mencakup 4 pelajaran total.
Mengapa Menggunakan Replika Baca?
Beban kerja yang didominasi pembacaan dapat mengalihkan SELECT ke replika:
- Primer menangani penulisan
- Replika menangani sebagian besar pembacaan
- Penskalaan pembacaan horizontal tanpa sharding
Catatan tentang Konsistensi Akhir
Replika tertinggal dari primer. Pengguna yang baru saja membuat pesanan mungkin belum dapat melihatnya di replika. Pilih salah satu:
- Arahkan pembacaan setelah penulisan ke primer
- Tunggu sampai replika menyusul
- Simpan keadaan setelah penulisan dalam tembolok aplikasi
Strategi Perutean
- Perutean tingkat aplikasi—kode aplikasi memilih primer atau replika
- Perutean tingkat pengandar—JDBC, pgjdbc, dan pgxpool menyediakan kumpulan koneksi yang memahami primer dan replika
- Perutean tingkat proxy—pgpool, pgbouncer, dan HAProxy dengan pendeteksian baca/tulis
Perutean Aplikasi
Dua kumpulan koneksi, satu untuk setiap peran:
const primary = new Pool({ host: 'primary', ... });
const replica = new Pool({ host: 'replica', ... });
// reads go to replica:
await replica.query('SELECT ...');
// writes (and read-your-writes) go to primary:
await primary.query('INSERT ...');PgPool-II
Proksi yang mengurai SQL dan merutekan SELECT ke replica, penulisan ke primary. Mendukung penyeimbangan beban dan pengumpulan koneksi:
# pgpool.conf
backend_hostname0 = 'primary'
backend_hostname1 = 'replica1'
load_balance_mode = onHAProxy dengan Pemeriksaan pg_isready
HAProxy tidak memahami SQL, tetapi dapat merutekan berdasarkan port—satu titik masuk untuk penulisan (ke primary), dan titik masuk lain untuk pembacaan (ke replica dengan pemeriksaan kesehatan):
frontend writes
bind *:5432
default_backend primary_pool
frontend reads
bind *:5433
default_backend replicas_pool
balance roundrobinTitik Akhir AWS RDS
RDS menyediakan satu titik akhir penulisan dan satu titik akhir pembacaan yang menyeimbangkan beban di semua replica—solusi paling sederhana di cloud.
Pertimbangan Keterlambatan Replikasi
Pantau keterlambatan dan hindari perutean ke replica yang tertinggal terlalu jauh:
-- On primary:
SELECT client_addr, replay_lag FROM pg_stat_replication;
-- HAProxy / pgpool can use a custom health check that fails if replay_lag > threshold.Pola Sesi Lengket
Untuk "membaca penulisan sendiri": ikat sesi pengguna ke primary selama N detik setelah penulisan. Atau tandai penulisan dengan LSN dan tunggu hingga replica memutar ulangnya sebelum menyajikan data.
Penantian Berbasis LSN
Setelah penulisan, catat LSN; sebelum membaca dari replica, tunggu hingga replica menerapkan ulang data sampai LSN tersebut:
-- After write on primary:
SELECT pg_current_wal_lsn(); -- save this
-- Before read on replica:
SELECT pg_last_wal_replay_lsn() >= $saved_lsn;
-- spin or wait until trueCaching sebagai Replica
Terkadang Redis / Memcache berperan sebagai "replica" untuk meningkatkan skala pembacaan—jauh lebih cepat daripada instans Postgres lain untuk kunci yang sering diakses.
Kapan TIDAK Menggunakan Replica
Jika beban kerja Anda didominasi penulisan, replica biasanya hanya menambah biaya tanpa meningkatkan kecepatan. Jika pembacaan sudah cepat pada primary, Anda mungkin tidak membutuhkannya.
Pemulihan Bencana vs Penskalaan Pembacaan
Replica pengalihan saat kegagalan HA merupakan kebutuhan yang berbeda dari replica untuk penskalaan pembacaan. Sering kali Anda menggunakan keduanya.
Ringkasan
Replica pembacaan meningkatkan skala pembacaan, tetapi membawa keterlambatan.
- Perutean oleh aplikasi / pengandar / proksi
- Keterlambatan replikasi = konsistensi yang tercapai kemudian
- Ikat ke primary atau tunggu LSN untuk membaca penulisan sendiri
- Pantau keterlambatan, kembali ke primary jika tertinggal terlalu jauh
Pemeriksaan Singkat
Seorang pengguna mengirim komentar lalu segera memuat ulang halaman. Halaman tersebut membaca dari replica dan tidak menampilkan komentar. Apa masalahnya dan apa salah satu solusinya?
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Replika Baca dan Pengarahan Koneksi” gratis?
Ya — teks lengkap “Replika Baca dan Pengarahan Koneksi” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus SQL Academy, upgrade ke CoddyKit PRO. Kursus SQL Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Replika Baca dan Pengarahan Koneksi”?
Arahkan lalu lintas hanya-baca ke replika dengan PgBouncer atau driver cerdas, dan terima konsekuensi data yang mungkin belum mutakhir Kamu berlatih SQL Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai SQL Academy?
Tidak diperlukan pengalaman sebelumnya. SQL Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.
Berapa lama pelajaran “Replika Baca dan Pengarahan Koneksi” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran SQL Academy ini?
Ya. Setiap pelajaran SQL Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Replikasi Streaming dan WAL
- Replikasi Logis untuk Sharding
- Failover dan Pemilihan Pemimpin (Patroni, Stolon)
- Replika Baca dan Pengarahan Koneksi