全部产品
Search
文档中心

PolarDB:Pemisahan baca/tulis

更新时间:Jul 06, 2025

PolarDB untuk PostgreSQL mendukung fitur pemisahan baca/tulis. Jika Anda menggunakan titik akhir kluster dengan mode baca/tulis Baca dan Tulis (Pemisahan Baca/Tulis Otomatis), titik akhir tersebut secara otomatis meneruskan permintaan baca dan tulis ke node yang sesuai.

Informasi latar belakang

Jika sejumlah besar permintaan baca tetapi hanya sedikit permintaan tulis dikirim ke database, satu node mungkin tidak dapat menangani beban kerja tersebut, yang dapat memengaruhi layanan. Dengan menggunakan titik akhir kluster dalam mode Baca dan Tulis (Pemisahan Baca/Tulis Otomatis), permintaan tulis akan diteruskan ke node utama, sementara permintaan baca diteruskan ke node baca-saja. Hal ini meningkatkan kemampuan baca secara elastis untuk menangani volume permintaan baca yang tinggi.

Manfaat

  • Pemeliharaan Mudah Berdasarkan Titik Akhir Terpadu

    Tanpa menggunakan titik akhir kluster dalam mode Baca dan Tulis (Pemisahan Baca/Tulis Otomatis), Anda harus mengonfigurasi titik akhir node utama dan setiap node baca-saja di aplikasi Anda agar permintaan tulis dan baca dapat diteruskan ke node yang tepat. Namun, dengan menghubungkan aplikasi Anda ke titik akhir kluster dalam mode ini, titik akhir kluster secara otomatis meneruskan permintaan ke node yang relevan, mengurangi biaya pemeliharaan. Anda hanya perlu menambahkan node baca-saja untuk meningkatkan kapasitas pemrosesan kluster tanpa perlu memodifikasi aplikasi.

  • Konsistensi Baca Tingkat Sesi

    Saat klien terhubung melalui titik akhir kluster, proksi bawaan untuk pemisahan baca/tulis secara otomatis membuat koneksi ke node utama dan setiap node baca-saja. Dalam sesi yang sama, proksi memilih node berdasarkan kemajuan sinkronisasi data dari setiap node database. Kemudian, proksi meneruskan permintaan baca dan tulis ke node dengan data paling mutakhir, menyeimbangkan beban antar node.

  • Distribusi Merata Pernyataan PREPARE

    Pernyataan PREPARE yang berisi operasi tulis dan pernyataan EXECUTE terkait hanya dikirim ke node utama. Pernyataan PREPARE yang berisi operasi baca-saja disiarkan ke semua node, dan pernyataan EXECUTE terkait dirutekan berdasarkan beban pada node-node tersebut, mencapai keseimbangan beban untuk permintaan kueri.

  • Dukungan untuk Tautan Keamanan Tinggi Asli dan Peningkatan Performa

    Anda dapat membangun proksi sendiri di cloud untuk pemisahan baca/tulis, namun latensi berlebihan dapat terjadi karena data diurai dan diteruskan oleh beberapa komponen sebelum sampai di database. PolarDB menggunakan proksi bawaan sebagai komponen kluster untuk pemisahan baca/tulis, memberikan latensi lebih rendah dan kecepatan pemrosesan data lebih tinggi dibandingkan komponen eksternal.

  • Pemeriksaan Kesehatan Node untuk Meningkatkan Ketersediaan Database

    Modul pemisahan baca/tulis PolarDB melakukan pemeriksaan kesehatan pada node utama dan node baca-saja kluster. Jika suatu node gagal atau latensinya melebihi ambang batas tertentu, PolarDB menghentikan distribusi permintaan baca ke node tersebut dan mendistribusikan permintaan ke node lain yang sehat. Setelah node pulih, PolarDB secara otomatis menambahkannya kembali ke daftar node yang tersedia.

Batasan

  • PolarDB tidak mendukung pernyataan atau fitur berikut:

    • Hubungkan ke kluster melalui metode replication-mode. Untuk menyiapkan kluster dua node berdasarkan arsitektur replikasi utama/sekunder, gunakan titik akhir node utama.

    • Gunakan nama tabel sementara untuk mendeklarasikan atribut %ROWTYPE.

      create temp table fullname (first text, last text);
      select '(Joe,von Blow)'::fullname, '(Joe,d''Blow)'::fullname;
    • Buat sumber daya sementara dengan menggunakan fungsi.

      • Jika Anda membuat tabel sementara dengan menggunakan fungsi dan menjalankan pernyataan SQL untuk menanyakan tabel sementara, pesan kesalahan mungkin dikembalikan yang menunjukkan bahwa tabel tidak ada.

      • Jika fungsi Anda berisi pernyataan PREPARE, pesan kesalahan mungkin dikembalikan saat Anda menjalankan pernyataan EXECUTE, menunjukkan bahwa nama pernyataan PREPARE tidak ada.

  • Pembatasan Terkait Routing:

    • Permintaan dalam transaksi dirutekan ke node utama, dan keseimbangan beban dilanjutkan setelah transaksi dihentikan.

    • Semua fungsi yang melibatkan operasi tulis atau operasi baca-tulis campuran dirutekan ke node utama. Semua fungsi baca-saja, termasuk fungsi baca-saja yang disesuaikan, dirutekan ke node baca-saja.

Buat atau modifikasi titik akhir kluster

Konfigurasikan pemisahan transaksi

Untuk informasi lebih lanjut, lihat Pemisahan Transaksi.

Tentukan tingkat konsistensi

Untuk informasi lebih lanjut, lihat Tingkat Konsistensi.

Tambahkan petunjuk untuk menentukan arah routing pernyataan SQL

Tambahkan petunjuk /*FORCE_MASTER*/ atau /*FORCE_SLAVE*/ sebelum pernyataan SQL untuk menentukan arah routing. Secara default, pernyataan SELECT * FROM test dirutekan ke node baca-saja. Jika Anda mengubah pernyataan menjadi /*FORCE_MASTER*/ SELECT * FROM test, pernyataan tersebut dirutekan ke node utama.

Hubungkan ke kluster PolarDB untuk PostgreSQL

Hubungkan ke Kluster PolarDB untuk PostgreSQL

Catatan

Setelah titik akhir kluster dibuat, Anda hanya perlu mengonfigurasi titik akhir kluster di aplikasi Anda untuk mencapai pemisahan baca/tulis otomatis.

Operasi terkait

API

Deskripsi

CreateDBEndpointAddress

Membuat titik akhir publik untuk kluster PolarDB.

DescribeDBClusterEndpoints

Meminta informasi titik akhir tentang kluster PolarDB.

ModifyDBClusterEndpoint

Memodifikasi konfigurasi titik akhir kluster untuk kluster PolarDB.

ModifyDBEndpointAddress

Memodifikasi titik akhir untuk kluster PolarDB, misalnya, titik akhir kluster kustom.

DeleteDBEndpointAddress

Melepaskan titik akhir publik dari titik akhir utama, titik akhir kluster default, atau titik akhir kluster kustom untuk kluster PolarDB.