全部产品
Search
文档中心

ApsaraDB for MongoDB:Terhubung ke instansi kluster sharded

更新时间:Nov 10, 2025

Instans kluster sharded ApsaraDB for MongoDB menyediakan titik akhir terpisah untuk komponen Mongos, shard, dan Configserver. Selain itu, alamat ConnectionStringURI dan ConnectionStringURI SRV dengan ketersediaan tinggi disediakan untuk koneksi aplikasi. Topik ini menjelaskan cara memperoleh titik akhir tersebut serta memberikan panduan untuk terhubung.

Memperoleh titik akhir database

  1. Buka halaman Instansi Kluster Sharded ApsaraDB for MongoDB. Di bilah navigasi atas, pilih kelompok sumber daya dan wilayah, lalu klik ID instans target.

  2. Di halaman detail instans, di panel navigasi sebelah kiri, klik Database Connections. Kemudian, peroleh alamat koneksi node target.

Deskripsi titik akhir

Jenis jaringan titik akhir

Jenis jaringan

Deskripsi

Jaringan pribadi

  • VPC (Virtual Private Cloud): VPC adalah jaringan terisolasi yang menyediakan keamanan dan performa lebih tinggi. Instans ApsaraDB for MongoDB menyediakan titik akhir VPC secara default.

  • Jaringan klasik: Jaringan non-terisolasi yang hanya mengandalkan kebijakan grup keamanan atau daftar putih layanan Alibaba Cloud untuk perlindungan. Instans baru tidak lagi mendukung jaringan klasik. Untuk informasi lebih lanjut, lihat [Pemberitahuan] Instans baru ApsaraDB for MongoDB tidak lagi mendukung jaringan klasik.

Jaringan publik

Karena terhubung ke instans melalui Internet menimbulkan risiko keamanan tertentu, instans ApsaraDB for MongoDB tidak menyediakan titik akhir publik secara default. Untuk terhubung melalui Internet, Anda dapat secara manual mengajukan titik akhir publik.

Jenis titik akhir

Jenis titik akhir

Deskripsi

Alamat ConnectionStringURI SRV (Direkomendasikan)

Dalam MongoDB, SRV adalah jenis rekaman DNS yang menyederhanakan string koneksi MongoDB dan mendukung penemuan otomatis anggota kluster.

Saat Anda menambahkan atau menghapus node Mongos dalam instans kluster sharded, menggunakan alamat SRV memungkinkan Anda berinteraksi dengan instans secara mulus. Ini menyederhanakan desain dan pemeliharaan aplikasi.

Penting
  • Secara default, konsol tidak menampilkan alamat SRV. Untuk menggunakannya, klik Apply For Private SRV Address atau Apply For Public SRV Address pada halaman Database Connection.

  • Sebelum Anda mengajukan alamat SRV publik, Anda harus mengaktifkan titik akhir publik untuk node Mongos. Setelah Anda terhubung ke instans MongoDB menggunakan alamat SRV publik, klien secara otomatis mengirim permintaan ke node Mongos yang memiliki titik akhir publik diaktifkan.

  • Alamat SRV hanya didukung untuk instans yang menggunakan disk cloud.

  • Alamat SRV pribadi dalam VPC dapat dikaitkan dengan maksimal 20 node Mongos. Karena keterbatasan protokol penguraian DNS dalam VPC, jika ada lebih dari 20 node Mongos, node tambahan tersebut tidak dapat berbagi beban permintaan. Alamat SRV publik tidak memiliki batasan ini.

  • Dalam lingkungan produksi, terhubung ke database menggunakan alamat ConnectionStringURI SRV. Klien secara otomatis mengirim permintaan ke beberapa node instans untuk mencapai load balancing. Jika sebuah node gagal, klien secara otomatis melakukan failover dan mengirim permintaan ke node sehat. Saat Anda menambahkan atau menghapus node, Anda dapat berinteraksi dengan kluster secara mulus. Ini menyederhanakan desain dan pemeliharaan aplikasi.

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

    • pymongo lebih awal dari 3.9.0.

    • mongo-java-driver lebih awal dari 3.10.0.

    • mongodb-go-driver lebih awal dari 1.1.0.

    • mongodb node.js lebih awal dari 3.3.0.

    • mongo-cxx-driver lebih awal dari 3.8.

Alamat ConnectionStringURI

ApsaraDB for MongoDB menyediakan alamat ConnectionStringURI untuk komponen Mongos dan shard.

Dibandingkan dengan string koneksi node tunggal, lebih baik menghubungkan aplikasi dalam lingkungan produksi ke database menggunakan ConnectionStringURI. Klien secara otomatis mengirim permintaan ke beberapa node Mongos untuk load balancing. Jika node Mongos gagal, klien secara otomatis melakukan failover dan mengirim permintaan ke node Mongos sehat.

Catatan
  • Secara default, konsol hanya menampilkan alamat ConnectionStringURI untuk Mongos. Untuk mendapatkan alamat ConnectionStringURI untuk shard, Anda harus mengajukan titik akhir node yang sesuai.

  • Jika parameter readPreference dan readPreferenceTags tidak disetel, permintaan baca dikirim ke node utama.

  • Saat Anda menambahkan atau menghapus node Mongos dalam instans kluster sharded, Anda harus memodifikasi string koneksi ini untuk menambahkan atau menghapus informasi koneksi node yang sesuai.

Alamat Mongos

Titik akhir komponen Mongos, termasuk titik akhir node utama.

Catatan

Untuk pengujian harian, Anda hanya perlu terhubung ke node apa pun dari komponen Mongos.

Alamat Shard

Titik akhir komponen shard, termasuk titik akhir node utama, sekunder, dan read-only.

Catatan
  • Secara default, konsol hanya menampilkan titik akhir untuk Mongos. Untuk mendapatkan titik akhir untuk shard dan Configserver, Anda harus mengajukan titik akhir node yang sesuai.

  • Anda dapat melihat titik akhir node read-only untuk komponen shard hanya jika komponen shard berisi node read-only.

Alamat Configserver

Titik akhir komponen Configserver, termasuk titik akhir node utama dan sekunder.

Catatan
  • Secara default, konsol hanya menampilkan titik akhir untuk Mongos. Untuk mendapatkan titik akhir untuk shard dan Configserver, Anda harus mengajukan titik akhir node yang sesuai.

  • Anda dapat mengajukan titik akhir Configserver hanya untuk instans kluster sharded yang menggunakan disk lokal.

Format, parameter, dan contoh untuk setiap jenis titik akhir adalah sebagai berikut:

Alamat ConnectionStringURI SRV

Format:

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

Parameter:

Parameter

Deskripsi

mongodb+srv://

Prefiks string koneksi. Ini menunjukkan bahwa rekaman DNS SRV digunakan untuk penemuan layanan.

<username>

Nama akun database. Nilai defaultnya adalah root.

<password>

Kata sandi akun database.

<srv-host>

Nama host.

<database>

Nama database yang akan diakses. Nilai defaultnya adalah admin.

authSource=<authenticationDatabase> (Opsional)

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

Catatan

Rekaman TXT dari string koneksi SRV untuk ApsaraDB for MongoDB menentukan authSource=admin, yang menimpa properti otentikasi dari <database>. Oleh karena itu, untuk mengubah database otentikasi, Anda harus secara manual menentukan authSource=<authenticationDatabase> bukan mengubah parameter <database>. Untuk informasi lebih lanjut, lihat dokumentasi resmi MongoDB.

<other_options>

Parameter opsional lainnya.

Catatan

Opsi SSL untuk koneksi SRV adalah true secara default. Jika Anda tidak perlu menggunakan koneksi terenkripsi SSL, tambahkan parameter ssl=false ke string koneksi. Untuk informasi lebih lanjut tentang parameter opsional, lihat dokumentasi resmi MongoDB.

Contoh:

Akun database adalah test dan berada di database admin.

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

Alamat ConnectionStringURI

Berikut ini adalah deskripsi alamat ConnectionStringURI untuk komponen Mongos dan shard.

Mongos

Penting

Untuk lingkungan produksi, hubungkan aplikasi ke database menggunakan ConnectionStringURI. Klien secara otomatis mengirim permintaan ke beberapa node Mongos untuk load balancing. Jika node Mongos gagal, klien secara otomatis melakukan failover dan mengirim permintaan ke node Mongos sehat.

Format:

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

Parameter

Deskripsi

<username>

Nama akun database. Nilai defaultnya adalah root.

<password>

Kata sandi akun database.

<host>

Domain Name node dalam komponen Mongos.

<port>

Port node dalam komponen Mongos.

<database>

Nama database yang akan diakses. Nilai defaultnya adalah admin.

authSource=<authenticationDatabase> (Opsional)

Parameter ini menentukan database tempat akun database berada. <authenticationDatabase> adalah nama database otentikasi. Jika Anda tidak mengonfigurasi parameter ini, <database> digunakan sebagai database otentikasi.

Contoh:

Akun database test termasuk dalam database admin.

mongodb://test:****@s-bp1c010266f6****.mongodb.rds.aliyuncs.com:3717,s-bp1773180e38****.mongodb.rds.aliyuncs.com:3717/admin

Shard

Alamat ConnectionStringURI untuk komponen shard adalah titik akhir ketersediaan tinggi yang menyediakan load balancing dan mencakup alamat semua node dalam shard. Anda dapat terhubung ke titik akhir ini untuk melakukan operasi baca dan tulis pada database. Untuk lingkungan produksi, kami sarankan Anda menghubungkan aplikasi ke instans menggunakan alamat ini.

Penting

Untuk lingkungan produksi, hubungkan aplikasi ke instans menggunakan alamat ConnectionStringURI. Ini memastikan bahwa klien selalu dapat menemukan node utama dan bahwa failover utama/sekunder tidak memengaruhi operasi baca dan tulis aplikasi.

Format:

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

Parameter:

Parameter

Deskripsi

<username>

Nama akun database. Nilai defaultnya adalah root.

<password>

Kata sandi akun database.

<host>

Domain Name node utama, sekunder, dan read-only.

<port>

Port node utama, sekunder, dan read-only.

<database>

Nama database yang akan diakses. Nilai defaultnya adalah admin.

authSource=<authenticationDatabase> (Opsional)

Parameter ini menentukan database tempat akun database berada. <authenticationDatabase> adalah nama database otentikasi. Jika Anda tidak mengonfigurasi parameter ini, <database> digunakan sebagai database otentikasi.

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

Parameter ini mengimplementasikan pemisahan baca/tulis dan load balancing. Ini mengirim permintaan tulis ke node utama dan permintaan baca ke node yang ditentukan oleh parameter. Nilai valid:

  • readPreference=primary: Permintaan baca hanya dikirim ke node utama.

  • readPreference=primaryPreferred: Permintaan baca diprioritaskan ke node utama. Jika node utama gagal, permintaan baca dikirim ke node sekunder dan read-only.

  • readPreference=secondary: Permintaan baca hanya dikirim ke node sekunder dan read-only. Jika kedua node sekunder dan read-only gagal, permintaan baca gagal dan tidak dikirim ke node utama.

  • readPreference=secondaryPreferred: Permintaan baca diprioritaskan ke node sekunder dan read-only. Jika kedua node sekunder dan read-only gagal, parameter ini mengirim permintaan baca ke node utama.

Catatan

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

readPreferenceTags=<readonly_Tags> (Opsional)

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

  • readPreferenceTags=role:electable: Memrioritaskan membaca dari node sekunder.

    Catatan

    Opsi ini hanya berlaku untuk instans yang menggunakan disk cloud.

  • readPreferenceTags=role:readonly: Memrioritaskan membaca dari node read-only.

Anda dapat menggunakan parameter readPreference dan readPreferenceTags untuk instans MongoDB Anda. Dengan menggabungkan tag yang berbeda, Anda dapat memenuhi kebutuhan skenario yang berbeda:

Kebijakan respons node utama untuk permintaan baca

Node tempat permintaan baca dikirim

Kombinasi parameter

Jika permintaan baca gagal, itu dikirim ke node utama

Memprioritaskan membaca dari node utama

readPreference=primaryPreferred

Memprioritaskan membaca dari node sekunder dan read-only

readPreference=secondaryPreferred

Memprioritaskan membaca dari node sekunder

Catatan

Jika node sekunder gagal, permintaan baca dikirim ke node utama.

readPreference=secondaryPreferred&readPreferenceTags=role:electable

Memprioritaskan membaca dari node read-only

Catatan

Jika node read-only gagal, permintaan baca dikirim ke node utama.

readPreference=secondaryPreferred&readPreferenceTags=role:readonly

Jika permintaan baca gagal, itu tidak dikirim ke node utama

Hanya membaca dari node sekunder dan read-only

readPreference=secondary

Hanya membaca dari node sekunder

Catatan

Jika node sekunder gagal, operasi baca gagal.

readPreference=secondary&readPreferenceTags=role:electable

Hanya membaca dari node read-only

Catatan

Jika node read-only gagal, operasi baca gagal.

readPreference=secondary&readPreferenceTags=role:readonly

Contoh:

mongodb://test:****@d-bp1586cb62bf53b****.mongodb.rds.aliyuncs.com:3717,d-bp1586cb62bf53b****.mongodb.rds.aliyuncs.com:3717/admin

Alamat Mongos

Format:

<host>:<port>

Parameter:

Parameter

Deskripsi

<host>

Domain Name node dalam komponen Mongos.

<port>

Port node dalam komponen Mongos.

Contoh:

s-bp1c010266f6****.mongodb.rds.aliyuncs.com:3717

Alamat Shard

Format:

<host>:<port>

Parameter:

Parameter

Deskripsi

<host>

Domain Name node dalam komponen shard.

<port>

Port node dalam komponen shard.

Contoh:

d-bp1c010266f6****.mongodb.rds.aliyuncs.com:3717

Alamat Configserver

Format:

<host>:<port>

Parameter:

Parameter

Deskripsi

<host>

Domain Name node dalam komponen Configserver.

<port>

Port node dalam komponen Configserver.

Contoh:

cs-bp1c010266f6****.mongodb.rds.aliyuncs.com:3717

Masuk ke database MongoDB

  1. Dapatkan informasi berikut:

    • Titik akhir database.

    • Akun database. Akun awal adalah root.

      Penting

      Jangan gunakan akun root untuk terhubung ke database dalam lingkungan produksi. Anda dapat membuat akun database dan menetapkan izin.

    • Kata sandi untuk akun database. Jika Anda belum menetapkan kata sandi atau lupa, Anda dapat menetapkan atau mereset kata sandi.

    • Database yang akan diakses. Jika akun database adalah root, database yang sesuai adalah admin.

  2. Masuk ke database menggunakan salah satu metode berikut:

Skenario koneksi umum

Pertanyaan Umum

Mengapa klien mengirim permintaan ke node yang tidak ada dalam string koneksi?

Perilaku ini normal dan merupakan fitur inti klien MongoDB yang disebut penemuan layanan, yang dirancang untuk memastikan ketersediaan tinggi. Penemuan layanan memungkinkan klien secara otomatis menyesuaikan dengan perubahan topologi kluster, seperti saat node utama mati, untuk memastikan kontinuitas layanan. Untuk mengirim permintaan hanya ke alamat koneksi tunggal, tambahkan directConnection=true ke string koneksi Anda. Untuk informasi lebih lanjut, lihat directConnection.

Contoh:

Jika instans lima node menggunakan string koneksi mongodb://root:xxx@dds-xxxxx1-pub.mongodb.rds.aliyuncs.com:3717,dds-xxxxx2-pub.mongodb.rds.aliyuncs.com:3717/admin, klien juga mengirim permintaan ke dua node lainnya, dds-xxxxx3-pub.mongodb.rds.aliyuncs.com:3717,dds-xxxxx4-pub.mongodb.rds.aliyuncs.com:3717, dan memantau status mereka.