All Products
Search
Document Center

ApsaraDB RDS:Atur atribut baca/tulis dan bobot baca

Last Updated:Jun 21, 2026

Atribut baca/tulis dan bobot baca dari titik akhir proxy database untuk ApsaraDB RDS for MySQL menentukan cara permintaan diproses. Anda dapat menyesuaikan pengaturan ini sesuai kebutuhan bisnis Anda. Topik ini menjelaskan logika pemrosesan atribut baca/tulis serta memberikan petunjuk cara mengonfigurasikannya beserta bobot baca yang sesuai melalui Konsol ApsaraDB RDS dan dengan memanggil operasi API.

Prasyarat

Atribut baca/tulis

Atribut baca/tulis dapat diatur menjadi Read/Write atau Read-only.

  • Read/Write: Gunakan mode ini untuk mengaktifkan pemisahan baca/tulis dan melakukan penskalaan layanan secara linear.

    Dalam mode ini, kebijakan akses untuk titik akhir proxy database (sebelumnya dikenal sebagai terminal proxy) harus mencakup setidaknya satu instans utama dan satu instansi hanya baca. Semua permintaan tulis dikirim ke instans utama. Mode ini mendukung fitur pemisahan baca/tulis seperti pemisahan transaksi dan kolam koneksi.

  • Read-only: Gunakan mode ini untuk beban kerja hanya baca, seperti pelaporan.

    Dalam mode ini, kebijakan akses untuk titik akhir proxy database harus mencakup setidaknya satu instansi hanya baca. Instans utama tidak berpartisipasi dalam perutean permintaan, dan pemisahan transaksi tidak didukung.

    Ketika atribut baca/tulis untuk kebijakan akses titik akhir proxy database diatur ke Read-only, ApsaraDB RDS mengalokasikan koneksi secara round-robin di antara instansi hanya baca yang ditentukan dalam kebijakan akses titik akhir tersebut. Setiap koneksi client dipetakan ke koneksi pada satu instansi hanya baca. Instans utama tidak berpartisipasi dalam alokasi ini. Jumlah total koneksi yang tersedia adalah jumlah koneksi dari semua instansi hanya baca yang dikonfigurasi.

Catatan
  • Untuk instans ApsaraDB RDS for MySQL Edisi Kluster, jika atribut baca/tulis diatur ke Read/Write, permintaan tulis hanya dikirim ke node utama. Jika atribut baca/tulis diatur ke Read-only, node utama tidak berpartisipasi dalam perutean, dan ApsaraDB RDS mengalokasikan koneksi secara round-robin ke node secondary yang ditentukan dalam kebijakan akses titik akhir.

  • Daftar putih IP proksi database disinkronkan dengan daftar putih IP instans utama.

  • Untuk mencegah single point of failure, buat setidaknya dua instansi hanya baca untuk satu instans utama dan sebarkan di zona ketersediaan yang berbeda. Untuk mengurangi latensi jaringan akibat akses lintas zona, Anda dapat mengaktifkan fitur akses terdekat. Untuk informasi selengkapnya, lihat Konfigurasikan akses terdekat.

Logika pemrosesan atribut baca/tulis

Atribut baca/tulis

Metode alokasi bobot

Bobot instans utama

Operasi normal

Instansi hanya baca terakhir dihapus

Semua instansi hanya baca gagal

Read-only

distribusi otomatis atau kustom

Bobot baca instans utama tidak dapat diatur.

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

  • Kebijakan akses proxy: Dapat dibaca, tidak dapat ditulis.

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

  • Kebijakan akses proxy: Tidak dapat dibaca atau ditulis (kesalahan koneksi).

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

  • Kebijakan akses proxy: Tidak dapat dibaca atau ditulis (kesalahan koneksi).

Read/Write

distribusi otomatis

Sama dengan 0

Untuk informasi selengkapnya, lihat Aturan alokasi bobot baca default.

  • Instans utama: Tidak dapat dibaca, tetapi dapat ditulis.

  • Kebijakan akses proxy: Dapat dibaca dan ditulis.

  • Instans utama: Dapat dibaca dan ditulis.

  • Kebijakan akses proxy: Dapat dibaca dan ditulis.

  • Instans utama: Dapat dibaca dan ditulis.

  • Kebijakan akses proxy: Dapat dibaca dan ditulis.

kustom

Lebih besar dari 0

  • Instans utama: Dapat dibaca dan ditulis.

  • Kebijakan akses proxy: Dapat dibaca dan ditulis.

  • Instans utama: Dapat dibaca dan ditulis.

  • Kebijakan akses proxy: Dapat dibaca dan ditulis.

  • Instans utama: Dapat dibaca dan ditulis.

  • Kebijakan akses proxy: Dapat dibaca dan ditulis.

Sama dengan 0

  • Instans utama: Tidak dapat dibaca, tetapi dapat ditulis.

  • Kebijakan akses proxy: Dapat dibaca dan ditulis.

  • Instans utama: Dapat dibaca dan ditulis.

  • Kebijakan akses proxy: Dapat dibaca dan ditulis.

  • Instans utama: Dapat dibaca dan ditulis.

  • Kebijakan akses proxy: Dapat dibaca dan ditulis.

Catatan
  • Tidak ada penerusan: Dalam mode Read-only, instans utama tidak berpartisipasi dalam penerusan permintaan baca.

  • Kesalahan koneksi: Dalam mode Read-only, jika kebijakan akses proxy tidak dapat dibaca atau ditulis, koneksi akan gagal dengan kesalahan.

  • Dalam mode Read/Write, ketika bobot baca instans utama diatur ke 0, permintaan baca secara default tidak diteruskan ke instans utama. Namun, permintaan baca akan diteruskan ke instans utama jika semua instansi hanya baca menjadi tidak sehat, digunakan petunjuk untuk memaksa perutean, atau pemisahan transaksi diaktifkan.

Dampak perubahan bobot terhadap operasi

Catatan

Untuk melihat versi mesin minor proksi database, lihat Lihat versi mesin minor proksi database. Untuk meningkatkan versi mesin minor, lihat Tingkatkan versi mesin minor proksi database.

Tindakan

Versi engine 2.8.41 atau lebih baru

Versi engine sebelum 2.8.41

Ketika sesi baru dimulai, apakah terhubung ke node dengan bobot baca 0?

Tidak

Tidak

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

Tidak

Tidak

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

Tidak

  • Protokol PS: Tidak

  • Protokol Text: Ya

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

Tidak

Ya

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

Tidak

  • Protokol PS: Tidak

  • Protokol Text: Ya

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

Tidak

Catatan

Meskipun versi proksi database seri 2.x menyediakan mekanisme retry_failed_reads, menghapus node hanya baca saat set hasil sedang dikembalikan masih dapat menyebabkan koneksi transient.

Ya

Apakah menghapus node hanya baca dengan bobot baca 0 menyebabkan koneksi transient untuk sesi yang sudah ada?

Tidak

Koneksi transient terjadi hanya jika node tersebut sedang memproses permintaan aktif.

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

Ya

Untuk versi proksi database seri 1.x, koneksi dihentikan jika jumlah sesi aktif (active_session) tidak turun ke 0. Jika tidak, koneksi tidak dihentikan, dan koneksi yang dihentikan secara otomatis dibuat ulang.

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

Algoritma load balancing

Versi sebelum 2.25.4: Hanya load balancing berbasis bobot yang didukung.

Versi 2.25.4 dan lebih baru menambahkan dukungan untuk load balancing berdasarkan jumlah permintaan aktif. Kebijakan perutean berikut didukung:

  • Load balancing berdasarkan jumlah permintaan aktif (versi 2.25.4 dan lebih baru)

  • Load balancing berbasis bobot (semua versi)

Kami merekomendasikan Anda menggunakan load balancing berdasarkan jumlah permintaan aktif karena memberikan performa puncak yang lebih baik dan mengurangi dampak kegagalan satu node terhadap seluruh kluster.

Load balancing berbasis bobot

Permintaan baca didistribusikan berdasarkan rasio bobot node. Metode ini menggunakan algoritma weighted round-robin yang halus dan nilai current_weight setiap node untuk mendistribusikan permintaan baca berdasarkan bobotnya. Prosesnya sebagai berikut:

  1. Aturan pemilihan: Pada setiap putaran penjadwalan, node dengan nilai current_weight tertinggi dipilih. Jika beberapa node memiliki bobot tertinggi yang sama, node yang muncul lebih dulu dalam daftar konfigurasi diprioritaskan.

  2. Akumulasi bobot: Setelah setiap putaran penjadwalan, nilai current_weight setiap node bertambah sebesar bobot yang ditetapkan untuknya.

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

Contoh:

Bobot baca node utama adalah 100, bobot baca node hanya baca 1 adalah 200, dan bobot baca node hanya baca 2 adalah 200.

Putaran

Node utama current_weight

current_weight node hanya baca 1

current_weight node hanya baca 2

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

Load balancing berdasarkan jumlah permintaan aktif

Permintaan diprioritaskan ke node dengan beban lebih rendah. Aturannya adalah merutekan permintaan ke node yang memiliki nilai (Jumlah permintaan aktif / Bobot node) terendah.

Contoh:

Bobot baca node utama adalah 100, bobot baca node hanya baca 1 adalah 200, dan bobot baca node hanya baca 2 adalah 200.

Putaran

Permintaan Aktif Node Utama

Permintaan aktif node hanya baca 1

Permintaan aktif node hanya baca 2

Node yang dirutekan

1

1

(Jumlah permintaan aktif / Bobot node) = 1/100 = 0,01

5

(Jumlah permintaan aktif / Bobot node) = 5/200 = 0,025

6

(Jumlah 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. Buka halaman RDS Instances, pilih wilayah di bilah navigasi atas, lalu klik ID instans target.

  2. Di panel navigasi kiri, klik Database Proxy.

  3. Pada bagian Connection Information, temukan titik akhir proxy database target, lalu klik Modify Configuration di kolom Actions.

  4. Pada kotak dialog yang muncul, di samping Read/Write Attributes, pilih Read/Write (Read/Write Splitting) atau Read-only (Primary Instance Not Connected to Receive Write Requests).

  5. Pada bagian Read Weight Allocation, pilih Automatic atau Custom.

    • Automatic: Sistem secara otomatis mengalokasikan bobot baca ke setiap instans berdasarkan spesifikasinya. Instansi hanya baca baru yang ditambahkan ke instans utama secara otomatis diberi bobot baca berdasarkan aturan alokasi sistem dan disertakan dalam konfigurasi pemisahan baca/tulis.

    • Custom: Atur secara manual bobot baca untuk setiap instans. Nilainya harus dalam rentang 0 hingga 10.000. Instansi hanya baca baru secara default memiliki bobot baca 0 dan harus dikonfigurasi secara manual.

Catatan
  • Fitur akses terdekat memastikan permintaan diteruskan dari aplikasi Anda ke proksi database. Konfigurasi bobot baca memastikan permintaan diteruskan dari proksi database ke database backend, yang tidak dipengaruhi oleh fitur akses terdekat. Anda harus menggunakan kedua fitur ini bersamaan untuk meminimalkan latensi akses.

  • Semakin tinggi bobot baca suatu instans, semakin banyak permintaan baca yang diprosesnya. Misalnya, asumsikan bahwa sebuah instans utama memiliki tiga instansi hanya baca dengan bobot baca masing-masing 0, 100, 200, dan 200. Ini menunjukkan bahwa instans utama tidak memproses permintaan baca (permintaan tulis tetap dikirim secara otomatis ke instans utama). Ketiga instansi hanya baca tersebut memproses permintaan baca dengan rasio 1:2:2.

  • Saat Anda menghapus instansi hanya baca, bobot bacanya secara otomatis dihapus, sedangkan bobot instansi lain tetap tidak berubah.

  • Anda tidak dapat mengatur bobot baca untuk instans yang memiliki latensi replikasi yang dikonfigurasi.

  • Perubahan berlaku segera dan tidak menyebabkan gangguan layanan. Namun, bagaimana bobot baru memengaruhi koneksi yang sudah ada bergantung pada versi engine proksi database. Untuk detailnya, lihat bagian "Dampak perubahan bobot terhadap operasi".

API Terkait

API

Deskripsi

DescribeDBProxy

Menanyakan detail proksi database untuk instans RDS.

DescribeDBProxyEndpoint

Menanyakan konfigurasi titik akhir proxy database untuk instans ApsaraDB RDS.

ModifyDBProxyEndpoint

Memodifikasi konfigurasi titik akhir proxy database untuk instans ApsaraDB RDS.

Lampiran 1: Merutekan pernyataan SQL dengan petunjuk

Selain menggunakan sistem alokasi bobot pemisahan baca/tulis, Anda dapat menggunakan petunjuk SQL untuk merutekan pernyataan SQL tertentu ke instans utama dan instansi hanya baca pada instans Edisi Ketersediaan Tinggi atau ke node utama dan node secondary pada instans Edisi Kluster.

Format petunjuk berikut didukung oleh pemisahan baca/tulis ApsaraDB RDS:

Untuk instans ApsaraDB RDS for MySQL Edisi Ketersediaan Tinggi:

  • /*FORCE_MASTER*/: Merutekan pernyataan SQL berikutnya ke instans utama.

  • /*FORCE_SLAVE*/: Merutekan pernyataan SQL berikutnya ke instansi hanya baca.

Untuk instans ApsaraDB RDS for MySQL Edisi Kluster:

  • /*FORCE_MASTER*/: Merutekan pernyataan SQL berikutnya ke node utama.

  • /*FORCE_SLAVE*/: Merutekan pernyataan SQL berikutnya ke node secondary.

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

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

Sebagai contoh, untuk instans ApsaraDB RDS for MySQL Edisi Ketersediaan Tinggi, jika Anda menambahkan petunjuk di awal pernyataan berikut, pernyataan tersebut akan dirutekan ke instans utama tanpa memperhatikan pengaturan bobot baca.

/*FORCE_MASTER*/ SELECT * FROM table_name;

Lampiran 2: Mengambil instansi hanya baca offline tanpa gangguan

Asumsikan Anda memiliki lingkungan pemisahan baca/tulis yang terdiri dari instans utama A dan dua instansi hanya baca B dan C. Untuk mengambil instansi hanya baca C offline tanpa gangguan layanan, ikuti langkah-langkah berikut:

  1. Buka halaman RDS Instances, pilih wilayah, lalu klik ID instans A.

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

  3. Pada kotak dialog Modify Proxy Endpoint (Terminal) Configuration, atur bobot baca instansi hanya baca C menjadi 0.

    Pilih Custom untuk metode alokasi bobot baca dan atur bobot baca instansi hanya baca C menjadi 0.

  4. Di halaman Monitoring and Alerts untuk instansi hanya baca C, pantau grafik Session Connection dan tunggu hingga metrik active_session turun ke 0.

    Catatan

    Anda hanya perlu memeriksa apakah active_session bernilai 0. Jika nilainya tidak turun ke 0 setelah periode yang lama, Anda dapat menghentikan sesi tersebut.

  5. Di tab Database Proxy untuk instans utama A, hapus instansi hanya baca C dari titik akhir proxy database.