全部产品
Search
文档中心

ApsaraDB RDS:Tetapkan Atribut Pemisahan Baca/Tulis dan Bobot Baca

更新时间:Nov 10, 2025

Atribut baca/tulis dan bobot baca dari titik akhir Proksi Database untuk ApsaraDB RDS for MySQL menentukan cara titik akhir tersebut memproses permintaan. Anda dapat menyesuaikan pengaturan ini untuk setiap titik akhir Proksi Database sesuai kebutuhan. Topik ini menjelaskan atribut baca/tulis, logika pemrosesannya, serta cara mengonfigurasinya dan bobot bacanya di konsol atau dengan memanggil Operasi API.

Prasyarat

Atribut baca/tulis

Atribut baca/tulis dapat diatur ke Baca/Tulis atau Hanya-Baca.

  • Baca/Tulis: Mendukung fitur Pemisahan Baca/Tulis untuk penskalaan layanan secara linier.

    Dalam mode ini, Anda harus mengonfigurasi kebijakan akses titik akhir Proksi Database dengan setidaknya satu Instans Utama dan satu Instans Hanya-Baca. Semua permintaan tulis dikirim ke Instans Utama. Mode ini mendukung fitur Pemisahan Baca/Tulis seperti Pemisahan Transaksi dan Kolam Koneksi.

  • Hanya-Baca: Mendukung layanan hanya-baca, seperti laporan.

    Dalam mode ini, Anda harus mengonfigurasi kebijakan akses titik akhir Proksi Database dengan setidaknya satu Instans Hanya-Baca. Instans Utama tidak terlibat dalam perutean. Pemisahan Transaksi tidak didukung.

    Jika atribut baca/tulis dari titik akhir Proksi Database diatur ke Hanya-Baca, ApsaraDB RDS mengalokasikan koneksi ke Instans Hanya-Baca yang dikonfigurasi secara bergiliran. Setiap koneksi klien dipetakan ke satu koneksi pada satu Instans Hanya-Baca. Instans Utama tidak digunakan untuk alokasi ini. Jumlah total koneksi yang tersedia adalah jumlah koneksi di semua Instans Hanya-Baca.

Catatan
  • Untuk Instans Edisi Kluster ApsaraDB RDS for MySQL, jika atribut baca/tulis diatur ke Baca/Tulis, permintaan tulis hanya dikirim ke node utama. Jika atribut baca/tulis diatur ke Hanya-Baca, node utama tidak terlibat dalam perutean. ApsaraDB RDS mengalokasikan koneksi ke node sekunder yang dikonfigurasi dalam kebijakan akses secara bergiliran.

  • Daftar Putih IP untuk Proksi Database tetap disinkronkan dengan Daftar Putih IP dari Instans Utama. Pembaruan pada Daftar Putih Instans Utama secara otomatis diterapkan ke Daftar Putih Proksi Database.

  • Untuk menghindari titik kegagalan tunggal, Anda dapat membuat setidaknya dua Instans Hanya-Baca untuk Instans Utama dan menerapkannya di zona berbeda. Untuk mengurangi latensi jaringan dari akses lintas zona, Anda dapat mengaktifkan fitur akses terdekat. Untuk informasi lebih lanjut, lihat Konfigurasikan Akses Terdekat.

Logika pemrosesan untuk atribut baca/tulis

Atribut Baca/Tulis

Metode Alokasi Bobot

Bobot Instans Utama

Kasus Normal

Instans Hanya-Baca Terakhir Dihapus

Semua Instans Hanya-Baca Gagal

Hanya-Baca

Ditetapkan Sistem atau Kustom

Bobot Instans Utama tidak dapat diatur.

  • Instans Utama: Tidak dapat dibaca atau ditulis (tidak ada penerusan)

  • Kebijakan Akses Proksi: Dapat dibaca, tidak dapat ditulis

  • Instans Utama: Tidak dapat dibaca atau ditulis (tidak ada penerusan)

  • Kebijakan Akses Proksi: Tidak dapat dibaca atau ditulis (kesalahan koneksi)

  • Instans Utama: Tidak dapat dibaca atau ditulis (tidak ada penerusan)

  • Kebijakan Akses Proksi: Tidak dapat dibaca atau ditulis (kesalahan koneksi)

Baca/Tulis

Ditetapkan Sistem

Adalah 0

Untuk informasi lebih lanjut, lihat Aturan Alokasi Bobot Baca Default.

  • Instans Utama: Tidak dapat dibaca, tetapi dapat ditulis

  • Kebijakan Akses Proksi: Dapat dibaca dan ditulis

  • Instans Utama: Dapat dibaca dan ditulis

  • Kebijakan Akses Proksi: Dapat dibaca dan ditulis

  • Instans Utama: Dapat dibaca dan ditulis

  • Kebijakan Akses Proksi: Dapat dibaca dan ditulis

Kustom

Lebih besar dari 0

  • Instans Utama: Dapat dibaca dan ditulis

  • Kebijakan Akses Proksi: Dapat dibaca dan ditulis

  • Instans utama: Dapat dibaca dan ditulis.

  • Kebijakan Akses Proksi: Dapat dibaca dan ditulis

  • Instans Utama: Dapat dibaca dan ditulis

  • Kebijakan Akses Proksi: Dapat dibaca dan ditulis

Adalah 0

  • Instans Utama: Tidak dapat dibaca, tetapi dapat ditulis

  • Kebijakan Akses Proksi: Dapat dibaca dan ditulis

  • Instans Utama: Dapat dibaca dan ditulis

  • Kebijakan Akses Proksi: Dapat dibaca dan ditulis

  • Instans Utama: Dapat dibaca dan ditulis

  • Kebijakan Akses Proksi: Dapat dibaca dan ditulis

Catatan
  • Tidak ada penerusan: Dalam mode Hanya-Baca, Instans Utama tidak meneruskan permintaan baca.

  • Kesalahan koneksi: Dalam mode Hanya-Baca, kesalahan koneksi terjadi jika kebijakan akses proksi tidak dapat dibaca atau ditulis.

  • Dalam mode Baca/Tulis, jika bobot Instans Utama diatur ke 0, permintaan baca tidak diteruskan ke Instans Utama secara default. Namun, permintaan baca diteruskan ke Instans Utama jika node hanya-baca abnormal, petunjuk digunakan untuk memaksa perutean, atau Pemisahan Transaksi diaktifkan.

Pengaruh bobot pada O&M

Catatan

Untuk melihat versi mesin minor dari Proksi Database, lihat Lihat Versi Mesin Minor dari Proksi Database. Untuk meningkatkan versi mesin minor, lihat Tingkatkan Versi Mesin Minor dari Proksi Database.

Tindakan O&M

Versi Mesin 2.8.41 atau Lebih Baru

Versi Engine Sebelum 2.8.41

Apakah koneksi dibuat ke node dengan bobot 0 saat sesi baru dimulai?

Tidak

Tidak

Jika bobot node diubah dari nilai bukan nol menjadi 0, apakah node dihapus dari sesi yang ada?

Tidak

Tidak

Jika bobot node diubah dari nilai bukan nol menjadi 0, apakah permintaan dari sesi yang ada dirutekan berdasarkan bobot baru?

Tidak

  • Protokol PS: Tidak

  • Protokol Berbasis Teks: Ya

Jika bobot node diubah dari 0 menjadi nilai bukan nol, apakah node ditambahkan ke sesi yang ada?

Tidak

Ya

Jika bobot node diubah dari 0 menjadi nilai bukan nol, apakah permintaan dari sesi yang ada dirutekan berdasarkan bobot baru?

Tidak

  • Protokol PS: Tidak

  • Protokol Berbasis Teks: Ya

Apakah menghapus node hanya-baca dengan bobot bukan nol menyebabkan koneksi sementara untuk sesi yang ada?

Tidak

Catatan

Meskipun Proksi Database versi 2.x memiliki mekanisme retry_failed_reads, menghapus node hanya-baca saat hasil set sedang dikembalikan masih dapat menyebabkan koneksi sementara.

Ya

Apakah menghapus node hanya-baca dengan bobot 0 menyebabkan koneksi sementara untuk sesi yang ada?

Tidak

Koneksi sementara terjadi jika ada sesi yang ada dengan permintaan yang sedang dieksekusi. Jika tidak, tidak ada koneksi sementara yang terjadi.

Jika Anda membunuh koneksi pada node hanya-baca dengan bobot 0, apakah koneksi tersebut dihentikan?

Ya

Pada Proksi Database versi 1.x, koneksi dihentikan jika jumlah sesi aktif tidak turun menjadi 0. Jika tidak, koneksi tidak dihentikan, dan koneksi yang dibunuh secara otomatis dibuat ulang.

Jika Anda membunuh koneksi pada node hanya-baca dengan bobot bukan nol, apakah koneksi tersebut dihentikan?

Algoritma penyeimbangan beban

Versi sebelum 2.25.4: Hanya Kebijakan Penyeimbangan Beban Berbasis Bobot yang didukung.

Versi 2.25.4 dan lebih baru: Kebijakan Penyeimbangan Beban berdasarkan jumlah permintaan aktif ditambahkan. Dua kebijakan perutean berikut didukung:

  • Penyeimbangan Beban berdasarkan jumlah permintaan aktif (Versi 2.25.4 dan lebih baru)

  • Penyeimbangan Beban berdasarkan rasio bobot (Semua versi)

Kami merekomendasikan Anda menggunakan Kebijakan Penyeimbangan Beban berdasarkan jumlah permintaan aktif. Kebijakan ini memberikan kinerja puncak yang lebih baik untuk kluster dan mengurangi dampak kegagalan node tunggal pada seluruh kluster.

Penyeimbangan beban berbasis bobot

Permintaan baca didistribusikan secara ketat berdasarkan rasio bobot node. Metode ini menggunakan algoritma round-robin dan nilai current_weight dari setiap node untuk mendistribusikan permintaan baca berdasarkan rasio bobot. Prosesnya adalah sebagai berikut:

  1. Aturan Seleksi: Dalam setiap putaran penjadwalan, node dengan nilai current_weight tertinggi dipilih. Jika beberapa node memiliki bobot yang sama, yang muncul lebih awal dalam daftar konfigurasi dipilih.

  2. Akumulasi Bobot: Setelah setiap putaran penjadwalan, current_weight dari setiap node ditambah dengan bobotnya sendiri.

  3. Reset Bobot: Jika sebuah node dipilih, current_weight-nya dikurangi dengan jumlah semua bobot node.

Contoh:

Node utama memiliki bobot 100, node hanya-baca 1 memiliki bobot 200, dan node hanya-baca 2 memiliki bobot 200.

Putaran

Node utama current_weight

current_weight node hanya-baca 1

Node baca-saja 2 current_weight

Node yang Dirutekan

1

0

0

0

Node utama

2

-400

200

200

Node hanya-baca 1

3

-300

-100

400

Node hanya-baca 2

4

-200

100

100

Node hanya-baca 1

5

-100

-200

300

Node hanya-baca 2

6

0

0

0

Node utama

Penyeimbangan beban berdasarkan jumlah permintaan aktif

Permintaan diprioritaskan dikirim ke node dengan beban lebih rendah. Aturan perutean memilih node dengan nilai (Permintaan Aktif / Bobot Node) terendah saat ini.

Contoh:

Node utama memiliki bobot 100, node hanya-baca 1 memiliki bobot 200, dan node hanya-baca 2 memiliki bobot 200.

Putaran

Permintaan aktif node utama

Permintaan Aktif untuk Read-Only Node 1

Permintaan Aktif untuk Node Baca-Saja 2

Node yang Dirutekan

1

1

(Permintaan Aktif / Bobot Node) = 1/100 = 0.01

5

(Permintaan Aktif / Bobot Node) = 5/200 = 0.025

6

(Permintaan Aktif / Bobot Node) = 6/200 = 0.03

Node utama

2

2

4

6

Node hanya-baca 1

3

2

5

3

Node hanya-baca 2

4

1

2

3

Node hanya-baca 1

5

1

2

1

Node hanya-baca 2

6

0

3

3

Node utama

Prosedur

  1. Pergi ke halaman Instans RDS. Di bilah navigasi atas, pilih wilayah. Kemudian, temukan instans target dan klik ID-nya.

  2. Di panel navigasi di sebelah kiri, klik Database Proxy.

  3. Di bagian Connection Information, temukan titik akhir Proksi Database target dan klik Modify Configuration di kolom Actions.

  4. Di kotak dialog yang muncul, untuk Read/Write Property, pilih Baca/Tulis (pemisahan baca/tulis) atau Read-only (Does not connect to the primary instance and cannot process write requests).

  5. Di bagian Read Weight Allocation, pilih System-assigned atau Custom.

    • System-assigned: Sistem secara otomatis mengalokasikan bobot baca ke setiap instans berdasarkan tipe instansnya. Instans hanya-baca baru yang ditambahkan ke instans utama secara otomatis termasuk dalam konfigurasi pemisahan baca/tulis dengan bobot yang ditetapkan sistem. Tidak diperlukan konfigurasi manual.

    • Custom: Secara manual atur bobot baca untuk setiap instans. Nilainya berkisar antara 0 hingga 10.000. Instans hanya-baca baru yang ditambahkan ke instans utama memiliki bobot baca default 0 dan harus memiliki bobotnya diatur secara manual.

Catatan
  • Fitur Akses Terdekat memastikan bahwa permintaan diteruskan dari aplikasi Anda ke Proksi Database. Konfigurasi bobot baca memastikan bahwa permintaan diteruskan dari Proksi Database ke backend database, yang tidak terpengaruh oleh fitur akses terdekat. Anda harus menggunakan kedua fitur ini bersama-sama untuk meminimalkan latensi akses.

  • Semakin tinggi bobot baca suatu instans, semakin banyak permintaan baca yang diprosesnya. Sebagai contoh, asumsikan instans utama memiliki bobot baca 0, dan ketiga instans hanya-bacanya memiliki bobot baca 100, 200, dan 200. Ini berarti instans utama tidak memproses permintaan baca (permintaan tulis masih secara otomatis dikirim kepadanya), dan ketiga instans hanya-baca memproses permintaan baca dengan rasio 1:2:2.

  • Jika instans hanya-baca dihapus, bobotnya secara otomatis dihapus. Bobot instans lainnya tetap tidak berubah.

  • Anda tidak dapat menetapkan bobot untuk instans yang telah dikonfigurasikan latensi replikasi.

  • Perubahan pada parameter ini berlaku secara real-time dan tidak menyebabkan gangguan layanan. Setelah perubahan diterapkan, koneksi yang ada tidak terputus dan tersambung ulang. Koneksi baru dan yang ada dialokasikan berdasarkan bobot baru.

Operasi API Terkait

API

Deskripsi

DescribeDBProxy

Mengkueri detail proksi database untuk instans ApsaraDB RDS.

DescribeDBProxyEndpoint

Mengkueri kebijakan akses titik akhir proksi database untuk instans ApsaraDB RDS.

ModifyDBProxyEndpoint

Memodifikasi kebijakan akses titik akhir proksi database untuk instans ApsaraDB RDS.

Lampiran 1: Gunakan petunjuk untuk merutekan pernyataan SQL ke instans utama, instans hanya-baca, atau node utama/sekunder

Selain metode alokasi bobot pemisahan baca/tulis, Anda dapat menggunakan petunjuk sebagai sintaks SQL tambahan untuk menentukan bahwa pernyataan SQL dieksekusi pada instans utama dan instans hanya-baca dari instans Edisi Ketersediaan Tinggi atau pada node utama dan sekunder dari instans Edisi Kluster.

Pemisahan Baca/Tulis ApsaraDB RDS for MySQL mendukung format petunjuk berikut:

Untuk instans Edisi Ketersediaan Tinggi ApsaraDB RDS for MySQL:

  • /*FORCE_MASTER*/: Menentukan bahwa pernyataan SQL berikutnya dieksekusi pada instans utama.

  • /*FORCE_SLAVE*/: Menentukan bahwa pernyataan SQL berikutnya dieksekusi pada instans hanya-baca.

Untuk instans Edisi Kluster ApsaraDB RDS for MySQL:

  • /*FORCE_MASTER*/: Menentukan bahwa pernyataan SQL berikutnya dieksekusi pada node utama.

  • /*FORCE_SLAVE*/: Menentukan bahwa pernyataan SQL berikutnya dieksekusi pada node sekunder.

Catatan
  • Untuk instans Edisi Ketersediaan Tinggi ApsaraDB RDS for MySQL, jika Anda menggunakan /*FORCE_MASTER*/, pernyataan SQL dirutekan ke instans utama meskipun bobot bacanya adalah 0.

  • Untuk instans Edisi Kluster ApsaraDB RDS for MySQL, jika Anda menggunakan /*FORCE_MASTER*/, pernyataan SQL dirutekan ke node utama meskipun bobot bacanya adalah 0.

Sebagai contoh, untuk instans Edisi Ketersediaan Tinggi ApsaraDB RDS for MySQL, jika Anda menambahkan petunjuk ke awal pernyataan berikut, pernyataan tersebut selalu dirutekan ke instans utama untuk dieksekusi, terlepas dari pengaturan bobot.

/*FORCE_MASTER*/ SELECT * FROM table_name;

Lampiran 2: Praktik terbaik untuk mengambil instans hanya-baca offline tanpa gangguan layanan

Asumsikan bahwa Anda memiliki lingkungan pemisahan baca/tulis dengan satu instans utama A dan dua instans hanya-baca B dan C. Untuk mengambil instans hanya-baca C offline tanpa gangguan layanan, lakukan langkah-langkah berikut.

  1. Pergi ke halaman Instans RDS, pilih wilayah tempat instans A berada, dan kemudian klik ID instans A.

  2. Di panel navigasi di sebelah kiri, klik Database Proxy. Di bagian Connection Topology Management, klik Modify Configuration.image

  3. Di kotak dialog Modify Proxy Endpoint Configuration, atur bobot baca menjadi 0 untuk node hanya-baca C.

    image

  4. Pergi ke halaman Monitoring and Alarms untuk instans hanya-baca C. Di bagian Session Connections, pantau metrik active_session dan tunggu hingga nilainya turun menjadi 0.image

    Catatan

    Periksa apakah nilai active_session adalah 0. Jika nilai tersebut tidak turun menjadi 0 setelah periode panjang, Anda dapat membunuh sesi.

  5. Di tab Database Proxy untuk instans utama A, hapus instans hanya-baca C dari titik akhir Proksi Database.