0Pricing
SQL Academy · Pelajaran

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

  1. Perutean tingkat aplikasi—kode aplikasi memilih primer atau replika
  2. Perutean tingkat pengandar—JDBC, pgjdbc, dan pgxpool menyediakan kumpulan koneksi yang memahami primer dan replika
  3. 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 = on

HAProxy 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 roundrobin

Titik 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 true

Caching 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

  1. Replikasi Streaming dan WAL
  2. Replikasi Logis untuk Sharding
  3. Failover dan Pemilihan Pemimpin (Patroni, Stolon)
  4. Replika Baca dan Pengarahan Koneksi
← Kembali ke SQL Academy