全部产品
Search
文档中心

ApsaraDB for MongoDB:Gunakan URI string koneksi untuk terhubung ke instance kluster sharded

更新时间:Jul 02, 2025

Instance kluster sharded ApsaraDB for MongoDB menyediakan string koneksi untuk setiap node mongos. Anda dapat mengakses database dari instance kluster sharded setelah terhubung ke node mongos. Namun, penting untuk menggunakan metode yang tepat agar load balancing dan high availability dapat diterapkan.

Informasi latar belakang

Architecture

Kluster sharded MongoDB mendistribusikan dan menyimpan data di beberapa shard untuk mendukung skalabilitas tinggi. Saat membuat kluster sharded, MongoDB menggunakan Configserver untuk menyimpan metadata kluster dan satu atau lebih node mongos sebagai pintu masuk bagi aplikasi ke kluster. Node mongos membaca informasi routing dari Configserver untuk merutekan permintaan ke shard yang sesuai di backend.

  • Saat terhubung ke node mongos, node mongos berfungsi sebagai proses mongod.

  • Semua node mongos memiliki kedudukan yang sama. Anda dapat terhubung ke satu atau lebih node mongos untuk mengakses instance kluster sharded.

  • Node mongos tidak memiliki status dan dapat diskalakan sesuai kebutuhan. Kemampuan layanan dari instance kluster sharded bergantung pada nilai yang lebih kecil antara total kemampuan layanan shard dan kemampuan layanan node mongos.

  • Saat mengakses instance kluster sharded, disarankan untuk membagi beban aplikasi secara merata di antara beberapa node mongos.

URI string koneksi

Untuk terhubung dengan benar ke instance kluster sharded, Anda harus memahami format URI string koneksi MongoDB. Semua driver MongoDB resmi driver memungkinkan Anda menggunakan URI string koneksi untuk terhubung ke MongoDB.

Contoh:

mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]

Parameter dalam URI string koneksi:

  • mongodb://: Awalan yang menunjukkan URI string koneksi.

  • username:password@: Nama pengguna dan kata sandi yang digunakan untuk masuk ke database.

  • hostX:portX: Daftar string koneksi yang digunakan untuk terhubung ke node mongos.

  • /database: Database yang sesuai dengan nama pengguna dan kata sandi jika autentikasi diaktifkan.

  • options: Opsi tambahan yang digunakan untuk terhubung ke instance.

Gunakan URI string koneksi untuk terhubung ke instance kluster sharded

Anda dapat menggunakan URI string koneksi untuk terhubung ke instance kluster sharded guna menerapkan load balancing dan high availability.

  1. Peroleh URI string koneksi dari instance kluster sharded. Untuk informasi lebih lanjut, lihat Terhubung ke Instance Kluster Sharded.

  2. Gunakan URI string koneksi yang diperoleh untuk menghubungkan aplikasi Anda ke instance. Untuk informasi lebih lanjut, lihat Terhubung ke Instance Mandiri Menggunakan Kode Program.

    Berikut ini adalah contoh kode Java. Akun database adalah test dan database adalah admin.

    String user = "test";
    String password = "MongoDB****";
    String myURI = "mongodb://" + user + ":" + password + "@s-bp1c04c07823****.mongodb.rds.aliyuncs.com:3717,s-bp1500549e0b****.mongodb.rds.aliyuncs.com:3717/admin";
    MongoClient mongoClient = new MongoClient(new MongoClientURI(myURI));

    Setelah menggunakan metode di atas untuk terhubung ke instance kluster sharded, klien dapat secara otomatis mendistribusikan permintaan ke beberapa node mongos untuk menyeimbangkan beban. Jika Anda telah menggunakan URI string koneksi untuk terhubung ke dua atau lebih node mongos dan salah satu node mongos mengalami kegagalan, klien dapat secara otomatis melewati node yang gagal dan mendistribusikan permintaan ke node mongos normal lainnya.

Jika sejumlah besar node mongos digunakan, Anda dapat mengelompokkannya berdasarkan aplikasi. Misalnya, Anda memiliki aplikasi A, aplikasi B, dan empat node mongos. Anda dapat menentukan hanya string koneksi mongos 1 dan mongos 2 dalam URI untuk aplikasi A, serta menentukan hanya string koneksi mongos 3 dan mongos 4 dalam URI untuk aplikasi B. Dengan cara ini, Anda dapat mengisolasi node mongos untuk memberikan pintu masuk terpisah bagi aplikasi yang berbeda.

Catatan

Meskipun aplikasi terhubung ke node mongos yang saling terisolasi, mereka tetap berbagi shard di backend.

Opsi koneksi umum

  • Implementasikan Pemisahan Baca/Tulis

    Tambahkan readPreference=secondaryPreferred dalam parameter opsi untuk menetapkan preferensi baca ke node sekunder.

    Contoh:

    Akun database adalah test dan database adalah admin.

    mongodb://test:****@s-bp10fb1cf399****.mongodb.rds.aliyuncs.com:3717,s-bp10f49cdf5e****.mongodb.rds.aliyuncs.com:3717/admin?readPreference=secondaryPreferred
  • Batasi Koneksi

    Tambahkan maxPoolSize=xx dalam parameter opsi untuk membatasi jumlah maksimum koneksi dalam kumpulan koneksi klien menjadi xx.

    Berikut ini adalah contoh yang menetapkan jumlah maksimum koneksi dalam kumpulan koneksi klien tunggal menjadi 100. Akun database adalah test dan database adalah admin.

    mongodb://test:****@s-bp10fb1cf399****.mongodb.rds.aliyuncs.com:3717,s-bp10f49cdf5e****.mongodb.rds.aliyuncs.com:3717/admin?readPreference=secondaryPreferred&maxpoolsize=100
  • Kirim Pengakuan Setelah Data Ditulis ke Mayoritas Node

    Tambahkan w=majority dalam parameter opsi untuk memastikan bahwa ApsaraDB for MongoDB mengirim pengakuan kepada klien setelah menulis data ke mayoritas node untuk permintaan penulisan.

    Contoh:

    Akun database adalah test dan database adalah admin.

    mongodb://test:****@s-bp10fb1cf399****.mongodb.rds.aliyuncs.com:3717,s-bp10f49cdf5e****.mongodb.rds.aliyuncs.com:3717/admin?readPreference=secondaryPreferred&maxpoolsize=100&w=majority