All Products
Search
Document Center

ApsaraDB for MongoDB:Koneksi instans set replika

Last Updated:Aug 26, 2026

Instans set replika ApsaraDB for MongoDB menyediakan titik akhir terpisah untuk node primary, secondary, dan read-only, serta ConnectionStringURI, ConnectionStringURI SRV, dan ReadOnly ConnectionStringURI dengan ketersediaan tinggi untuk koneksi aplikasi. Topik ini menjelaskan cara mendapatkan titik akhir tersebut dan menghubungkan ke instans Anda.

Deskripsi Alamat Koneksi

Pemilihan titik akhir

Di lingkungan produksi, hubungkan ke instans Anda menggunakan alamat ConnectionStringURI atau ConnectionStringURI SRV untuk load balancing dan ketersediaan tinggi. Jika instans Anda memiliki node read-only, hubungkan aplikasi read-only menggunakan alamat ReadOnly ConnectionStringURI. Hindari penggunaan alamat koneksi single-node karena failover dapat mengubah peran node. Lihat tabel berikut untuk perbedaan antar jenis koneksi.

Jenis titik akhir

Jenis alamat

Deskripsi

Alamat ConnectionStringURI SRV [Direkomendasikan]

Di MongoDB, SRV adalah tipe rekaman DNS yang menyederhanakan string koneksi MongoDB dan mendukung penemuan otomatis anggota dalam set replika.

Saat node ditambahkan ke atau dihapus dari instans set replika, penggunaan alamat SRV memungkinkan aplikasi berinteraksi dengan instans secara mulus. Hal ini menyederhanakan desain dan maintenance aplikasi.

Penting
  • Secara default, alamat SRV tidak ditampilkan di Konsol. Untuk menggunakannya, buka halaman Database Connection dan klik Apply for Private SRV Address atau Apply for Public SRV Address.

  • Untuk mengajukan alamat SRV publik, Anda harus terlebih dahulu mengaktifkan alamat publik untuk instans tersebut.

  • Alamat SRV hanya didukung untuk instans dengan cloud disk.

  • Kami merekomendasikan agar aplikasi di lingkungan produksi terhubung ke database menggunakan alamat ConnectionStringURI SRV. Client secara otomatis mendistribusikan permintaan ke beberapa node instans untuk load balancing. Jika suatu node gagal, client secara otomatis melakukan failover dan mengirim permintaan ke node yang sehat.

  • Versi driver lama mungkin tidak mendukung alamat SRV atau penemuan node otomatis. Contohnya:

    • Versi pymongo sebelum 3.9.0.

    • Versi mongo-java-driver sebelum 3.10.0.

    • Versi mongodb-go-driver sebelum 1.1.0.

    • Versi MongoDB Node.js driver sebelum 3.3.0.

    • Versi mongo-cxx-driver sebelum 3.8.

Alamat ConnectionStringURI

Alamat ConnectionStringURI menyediakan load balancing dan ketersediaan tinggi. Alamat ini berisi alamat semua node dalam instans, memungkinkan Anda melakukan operasi baca/tulis pada database. Gunakan alamat ini jika versi driver Anda tidak mendukung alamat SRV atau penemuan node otomatis.

Penting
  • Kami merekomendasikan agar aplikasi di lingkungan produksi menggunakan alamat ConnectionStringURI untuk terhubung ke instans. Hal ini mencegah failover memengaruhi operasi baca/tulis aplikasi Anda.

  • Jika parameter readPreference dan readPreferenceTags tidak diatur, client mengirim permintaan baca ke node primary.

  • Setelah Anda menambahkan atau menghapus node dari instans set replika, Anda harus memperbarui string koneksi agar mencerminkan perubahan tersebut.

Alamat ReadOnly ConnectionStringURI

Alamat ReadOnly ConnectionStringURI hanya berisi alamat semua node read-only dalam instans. Saat Anda terhubung ke alamat ini, client mengirim permintaan baca ke node read-only dan permintaan tulis ke node primary.

Catatan
  • Jika instans memiliki node read-only, kami merekomendasikan agar aplikasi read-only terhubung ke instans menggunakan alamat ini.

  • Alamat ReadOnly ConnectionStringURI hanya terlihat jika instans memiliki node read-only.

  • Jika suatu node read-only dalam instans gagal, permintaan baca secara otomatis dialihkan ke node read-only berikutnya yang tersedia, sehingga operasi baca aplikasi Anda tidak terganggu. Jika semua node read-only gagal, koneksi ke alamat ini akan gagal.

Alamat Primary

Alamat koneksi node primary. Anda dapat terhubung ke alamat ini untuk melakukan operasi baca/tulis pada database.

Penting

Kami tidak merekomendasikan agar aplikasi di lingkungan produksi terhubung ke instans menggunakan alamat ini. Setelah failover, alamat node primary berubah. Anda harus terhubung ke node primary baru untuk menghindari gangguan pada operasi baca/tulis Anda.

Alamat Secondary

Alamat koneksi node secondary. Anda dapat terhubung ke alamat ini untuk hanya melakukan operasi baca pada database.

Penting

Kami tidak merekomendasikan agar aplikasi di lingkungan produksi terhubung ke instans menggunakan alamat ini. Setelah failover, node secondary dapat dipromosikan menjadi primary. Jika aplikasi Anda terus menggunakan alamat ini, aplikasi tersebut mungkin terhubung ke node primary, yang dapat menyebabkan konflik izin atau operasi tulis yang tidak disengaja.

Alamat ReadOnly

Alamat koneksi node read-only. Anda dapat terhubung ke alamat ini untuk hanya melakukan operasi baca pada database.

Catatan

Alamat ini hanya ditampilkan jika instans memiliki node read-only.

Format alamat koneksi

Alamat ConnectionStringURI SRV

Format:

mongodb+srv://<username>:<password>@<srv-host>/<database>?[authSource=<authenticationDatabase>][&readPreference=<readPreference_value>][&readPreferenceTags=<readonly_Tags>]<other_options>

Parameter:

Parameter

Deskripsi

mongodb+srv://

Awalan string koneksi, yang menunjukkan penggunaan rekaman DNS SRV untuk penemuan layanan.

<username>

Nama akun database.

<password>

Password untuk akun database.

<srv-host>

Hostname.

<database>

Database yang akan diakses. Default: admin.

authSource=<authenticationDatabase> (Opsional)

Parameter ini menentukan database tempat akun database tersebut berada. <authenticationDatabase> adalah nama database otentikasi.

Catatan

Untuk string koneksi SRV ApsaraDB for MongoDB, rekaman TXT menentukan authSource=admin, yang menggantikan atribut otentikasi dari <database>. Jika Anda ingin mengubah database otentikasi, Anda harus secara eksplisit mengatur authSource=<authenticationDatabase> alih-alih mengubah parameter <database>. Untuk informasi lebih lanjut, lihat dokumentasi resmi MongoDB.

readPreference=[primary | primaryPreferred | secondary | secondaryPreferred] (Opsional)

Parameter ini mengaktifkan Pemisahan baca/tulis dan load balancing. Parameter ini mengarahkan permintaan tulis ke node primary dan permintaan baca ke jenis node yang ditentukan. Nilai yang valid:

  • readPreference=primary: Mengarahkan permintaan baca hanya ke node primary.

  • readPreference=primaryPreferred: Mengarahkan permintaan baca ke node primary terlebih dahulu. Jika node primary tidak tersedia, permintaan diarahkan ke node secondary dan read-only.

  • readPreference=secondary: Mengarahkan permintaan baca hanya ke node secondary dan read-only. Jika semua node secondary dan read-only tidak tersedia, permintaan gagal dan tidak diarahkan ke node primary.

  • readPreference=secondaryPreferred: Mengarahkan permintaan baca ke node secondary dan read-only terlebih dahulu. Jika semua node secondary dan read-only tidak tersedia, permintaan diarahkan ke node primary.

Catatan

Saat permintaan baca diarahkan ke node secondary dan read-only, beban mungkin tidak merata. Untuk menentukan node lebih lanjut, atur parameter readPreferenceTags.

readPreferenceTags=<readonly_Tags> (Opsional)

Parameter ini mengarahkan permintaan baca terlebih dahulu ke node yang sesuai dengan tag yang ditentukan. Parameter ini biasanya digunakan bersama parameter readPreference dan tidak kompatibel dengan mode primary. <readonly_Tags> adalah daftar tag pasangan kunci-nilai untuk node read-only. Jenis yang didukung:

  • readPreferenceTags=role:electable: Memberikan prioritas pada node secondary untuk permintaan baca.

    Catatan

    Opsi ini hanya berlaku untuk instans cloud disk.

  • readPreferenceTags=role:readonly: Memberikan prioritas pada node read-only untuk permintaan baca.

<other_options>

Parameter opsional lainnya.

Catatan

Opsi SSL untuk koneksi SRV secara default bernilai true. Untuk menonaktifkan enkripsi SSL, tambahkan parameter ssl=false ke string koneksi. Untuk informasi lebih lanjut tentang parameter opsional, lihat dokumentasi resmi MongoDB.

Anda dapat menggabungkan parameter readPreference dan readPreferenceTags untuk skenario berbeda:

Perilaku failover

Node yang diprioritaskan

Kombinasi parameter

Jika pembacaan dari node yang diprioritaskan gagal, arahkan permintaan baca ke node primary

Lebih memilih node primary

readPreference=primaryPreferred

Lebih memilih node secondary dan read-only

readPreference=secondaryPreferred

Lebih memilih node secondary

Catatan

Jika node secondary tidak tersedia, permintaan baca dialihkan ke node primary.

readPreference=secondaryPreferred&readPreferenceTags=role:electable

Lebih memilih node read-only

Catatan

Jika node read-only tidak tersedia, permintaan baca dialihkan ke node primary.

readPreference=secondaryPreferred&readPreferenceTags=role:readonly

Jika pembacaan dari node yang diprioritaskan gagal, jangan arahkan permintaan baca ke node primary

Hanya membaca dari node secondary dan read-only

readPreference=secondary

Hanya membaca dari node secondary

Catatan

Jika node secondary tidak tersedia, operasi baca gagal.

readPreference=secondary&readPreferenceTags=role:electable

Hanya membaca dari node read-only

Catatan

Jika node read-only tidak tersedia, operasi baca gagal.

readPreference=secondary&readPreferenceTags=role:readonly

Contoh:

Contoh ini menggunakan akun database 'test' untuk terhubung ke database 'admin'.

mongodb+srv://test:****@dds-bp19215393a0****-srv.mongodb.nosql.aliyuncs.com/admin?ssl=false

Alamat ConnectionStringURI

Format:

mongodb://<username>:<password>@<host1>:<port1>,<host2>:<port2>,...,<hostN>:<portN>/<database>?replicaSet=<replicaSet_value>[&authSource=<authenticationDatabase>][&readPreference=<readPreference_value>][&readPreferenceTags=<readonly_Tags>]

Parameter:

Parameter

Deskripsi

<username>

Nama akun database. Default: root.

<password>

Password untuk akun database.

<host>

domain names node primary, secondary, dan read-only.

<port>

ports node primary, secondary, dan read-only.

<database>

Database yang akan diakses. Default: admin.

replicaSet=<replicaSet_value>

Mengarahkan permintaan baca ke semua node dalam instans set replika. <replicaSet_value> adalah ID unik titik akhir ketersediaan tinggi untuk instans tersebut.

authSource=<authenticationDatabase> (Opsional)

Menentukan database otentikasi tempat akun database didefinisikan. <authenticationDatabase> adalah nama database otentikasi. Jika dihilangkan, database otentikasi secara default menggunakan nilai <database>.

readPreference=[primary | primaryPreferred | secondary | secondaryPreferred] (Opsional)

Parameter ini mengaktifkan Pemisahan baca/tulis dan load balancing. Parameter ini mengarahkan permintaan tulis ke node primary dan permintaan baca ke jenis node yang ditentukan. Nilai yang valid:

  • readPreference=primary: Mengarahkan permintaan baca hanya ke node primary.

  • readPreference=primaryPreferred: Mengarahkan permintaan baca ke node primary terlebih dahulu. Jika node primary tidak tersedia, permintaan diarahkan ke node secondary dan read-only.

  • readPreference=secondary: Mengarahkan permintaan baca hanya ke node secondary dan read-only. Jika semua node secondary dan read-only tidak tersedia, permintaan gagal dan tidak diarahkan ke node primary.

  • readPreference=secondaryPreferred: Mengarahkan permintaan baca ke node secondary dan read-only terlebih dahulu. Jika semua node secondary dan read-only tidak tersedia, permintaan diarahkan ke node primary.

Catatan

Saat permintaan baca diarahkan ke node secondary dan read-only, beban mungkin tidak merata. Untuk menentukan node lebih lanjut, atur parameter readPreferenceTags.

readPreferenceTags=<readonly_Tags> (Opsional)

Parameter ini mengarahkan permintaan baca terlebih dahulu ke node yang sesuai dengan tag yang ditentukan. Parameter ini biasanya digunakan bersama parameter readPreference dan tidak kompatibel dengan mode primary. <readonly_Tags> adalah daftar tag pasangan kunci-nilai untuk node read-only. Jenis yang didukung:

  • readPreferenceTags=role:electable: Memberikan prioritas pada node secondary untuk permintaan baca.

    Catatan

    Opsi ini hanya berlaku untuk instans cloud disk.

  • readPreferenceTags=role:readonly: Memberikan prioritas pada node read-only untuk permintaan baca.

Anda dapat menggabungkan parameter readPreference dan readPreferenceTags untuk skenario berbeda:

Perilaku failover

Node yang diprioritaskan

Kombinasi parameter

Jika pembacaan dari node yang diprioritaskan gagal, arahkan permintaan baca ke node primary

Lebih memilih node primary

readPreference=primaryPreferred

Lebih memilih node secondary dan read-only

readPreference=secondaryPreferred

Lebih memilih node secondary

Catatan

Jika node secondary tidak tersedia, permintaan baca dialihkan ke node primary.

readPreference=secondaryPreferred&readPreferenceTags=role:electable

Lebih memilih node read-only

Catatan

Jika node read-only tidak tersedia, permintaan baca dialihkan ke node primary.

readPreference=secondaryPreferred&readPreferenceTags=role:readonly

Jika pembacaan dari node yang diprioritaskan gagal, jangan arahkan permintaan baca ke node primary

Hanya membaca dari node secondary dan read-only

readPreference=secondary

Hanya membaca dari node secondary

Catatan

Jika node secondary tidak tersedia, operasi baca gagal.

readPreference=secondary&readPreferenceTags=role:electable

Hanya membaca dari node read-only

Catatan

Jika node read-only tidak tersedia, operasi baca gagal.

readPreference=secondary&readPreferenceTags=role:readonly

Contoh:

mongodb://root:****@dds-bp19f409d7512****.mongodb.rds.aliyuncs.com:3717,dds-bp19f409d7512****.mongodb.rds.aliyuncs.com:3717/admin?replicaSet=mgset-6108****

Alamat Read-only ConnectionStringURI

Format:

mongodb://<username>:<password>@<host1>:<port1>,<host2>:<port2>,...,<hostN>:<portN>/<database>?readPreference=secondary&readPreferenceTags=role:readonly&replicaSet=<replicaSet_value>[&authSource=<authenticationDatabase>]

Parameter:

Parameter

Deskripsi

<username>

Nama akun database. Default: root.

<password>

Password untuk akun database.

<host>

domain name dari node read-only.

<port>

port node read-only.

<database>

Database yang akan diakses. Default: admin.

readPreference=secondary&readPreferenceTags=role:readonly

Parameter ini mengarahkan permintaan baca ke node read-only. readPreferenceTags menentukan daftar tag pasangan kunci-nilai untuk node read-only. Untuk jenis koneksi ini, nilainya harus role:readonly.

replicaSet=<replicaSet_value>

Mengarahkan permintaan baca ke semua node dalam instans set replika. <replicaSet_value> adalah ID unik titik akhir ketersediaan tinggi untuk instans tersebut.

authSource=<authenticationDatabase> (Opsional)

Menentukan database otentikasi tempat akun database didefinisikan. <authenticationDatabase> adalah nama database otentikasi. Jika Anda tidak menentukan parameter ini, <database> digunakan sebagai database otentikasi.

Contoh:

mongodb://root:****@dds-bp19f409d7512****.mongodb.rds.aliyuncs.com:3717/admin?readPreference=secondary&readPreferenceTags=role:readonly&replicaSet=mgset-6108****

Alamat Utama

Format:

mongodb://<username>:<password>@<host>:<port>/<database>?[directConnection=true]

Parameter:

Parameter

Deskripsi

<username>

Nama akun database.

<password>

Password untuk akun database.

<host>

domain name dari node utama.

<port>

port dari node utama.

<database>

Database yang akan diakses. Default: admin.

directConnection=true (Opsional)

Mengirim permintaan hanya ke titik akhir saat ini (node primary).

  • Jika Anda mengatur parameter ini ke true, semua permintaan baca dan tulis dikirim ke node primary.

  • Jika Anda tidak menentukan parameter ini atau mengaturnya ke false, permintaan baca mungkin diteruskan ke node lain.

Contoh:

mongodb://root:****@dds-bp19f409d7512****.mongodb.rds.aliyuncs.com:3717/admin?directConnection=true

Alamat sekunder

Format:

mongodb://<username>:<password>@<host>:<port>/<database>?[directConnection=true]

Parameter:

Parameter

Deskripsi

<username>

Nama akun database.

<password>

Password untuk akun database.

<host>

domain name dari node sekunder.

<port>

port node secondary.

<database>

Database yang akan diakses. Default: admin.

directConnection=true (Opsional)

Mengirim permintaan hanya ke titik akhir saat ini (node secondary).

  • Saat diatur ke true, node tersebut menolak permintaan tulis.

  • Jika parameter ini dihilangkan atau diatur ke false, permintaan tulis diteruskan ke node primary.

Contoh:

mongodb://root:****@dds-bp19f409d7512****.mongodb.rds.aliyuncs.com:3717/admin?directConnection=true

Alamat Read-only

Format:

mongodb://<username>:<password>@<host>:<port>/<database>?[directConnection=true]

Parameter:

Parameter

Deskripsi

<username>

Nama akun database.

<password>

Password untuk akun database.

<host>

domain name node read-only.

<port>

port node read-only.

<database>

Database yang akan diakses. Default: admin.

directConnection=true (Opsional)

Mengirim permintaan hanya ke titik akhir saat ini (node read-only).

  • Saat diatur ke true, node tersebut menolak permintaan tulis.

  • Jika parameter ini dihilangkan atau diatur ke false, permintaan tulis diteruskan ke node primary.

Contoh:

mongodb://root:****@dds-bp19f409d7512****.mongodb.rds.aliyuncs.com:3717/admin?directConnection=true

Jenis jaringan titik akhir

Jenis jaringan

Deskripsi

jaringan pribadi

  • VPC: VPC adalah jaringan terisolasi yang menawarkan keamanan dan performa yang lebih baik. Secara default, instans ApsaraDB for MongoDB menyediakan titik akhir VPC.

  • Classic Network: Jaringan non-terisolasi yang hanya mengandalkan grup keamanan atau daftar putih untuk perlindungan. Instans baru tidak lagi mendukung Classic Network. Untuk informasi lebih lanjut, lihat Pemberitahuan: Classic Network tidak lagi didukung untuk instans ApsaraDB for MongoDB baru.

jaringan publik

Menghubungkan ke instans melalui jaringan publik menimbulkan risiko keamanan. Secara default, instans ApsaraDB for MongoDB tidak menyediakan titik akhir publik. Jika Anda perlu terhubung melalui jaringan publik, Anda dapat secara manual mengajukan titik akhir publik.

Titik akhir database

  1. Buka halaman MongoDB Replica Set Instances, pilih kelompok sumber daya dan Wilayah, lalu klik instans target.

  2. Di panel navigasi kiri, klik Database Connections.

Hubungkan ke database MongoDB

  1. Dapatkan informasi berikut:

  2. Hubungkan ke database dengan salah satu metode berikut:

Skema koneksi umum

FAQ

Mengapa client mengirim permintaan ke node yang tidak tercantum dalam string koneksi?

Perilaku ini merupakan bagian dari fitur penemuan layanan client MongoDB, yang penting untuk ketersediaan tinggi. Fitur ini memungkinkan client secara otomatis beradaptasi terhadap perubahan topologi kluster, seperti kegagalan node primary, untuk memastikan kelangsungan layanan. Anda dapat menambahkan directConnection=true ke string koneksi untuk menentukan bahwa permintaan hanya dikirim ke satu titik akhir. Untuk informasi lebih lanjut, lihat directConnection.

Contoh:

Saat titik akhir client untuk instans lima node dikonfigurasi sebagai mongodb://root:xxx@dds-xxxxx1-pub.mongodb.rds.aliyuncs.com:3717,dds-xxxxx2-pub.mongodb.rds.aliyuncs.com:3717/admin, client juga mengirim permintaan ke dan memantau status dua node tersisa yang tidak termasuk dalam titik akhir tersebut: dds-xxxxx3-pub.mongodb.rds.aliyuncs.com:3717,dds-xxxxx4-pub.mongodb.rds.aliyuncs.com:3717.