All Products
Search
Document Center

ApsaraDB for MongoDB:Hubungkan ke instans kluster sharded menggunakan URI string koneksi

Last Updated:Jun 16, 2026

Instans kluster sharded ApsaraDB for MongoDB menyediakan titik akhir untuk setiap node mongos. Anda dapat menghubungkan ke node mongos mana pun untuk mengakses database. Gunakan URI string koneksi untuk mencapai load balancing dan ketersediaan tinggi.

Informasi latar belakang

Sharded cluster architecture

Kluster sharded MongoDB mendistribusikan data di beberapa shard guna mencapai skalabilitas tinggi. Server konfigurasi menyimpan metadata kluster, sedangkan node mongos berfungsi sebagai titik masuk aplikasi yang membaca informasi rute dan meneruskan permintaan ke shard yang sesuai.

  • Mengakses node mongos mirip dengan mengakses proses mongod tunggal.

  • Semua node mongos setara (peer). Anda dapat mengakses kluster sharded melalui satu atau beberapa node mongos.

  • Node mongos bersifat tanpa status (stateless) dan dapat diskalakan keluar. Kapasitas layanan keseluruhan ditentukan oleh nilai terkecil antara kapasitas total shard dan kapasitas total mongos.

  • Distribusikan permintaan aplikasi secara merata di beberapa node mongos.

Tentang URI string koneksi

Untuk menghubungkan ke instans kluster sharded, Anda perlu memahami format Connection String URI MongoDB. Semua driver resmi MongoDB mendukung format ini.

Contoh URI string koneksi:

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

Deskripsi parameter:

  • mongodb://: Awalan yang mengidentifikasi ini sebagai URI string koneksi.

  • username:password@: Username dan password yang digunakan untuk login ke database.

  • hostX:portX: Alamat node mongos.

  • /database: Database otentikasi.

  • ?options: Opsi koneksi tambahan.

Hubungkan ke instans kluster sharded

ApsaraDB for MongoDB mendukung penggunaan URI string koneksi untuk menghubungkan ke instans kluster sharded, yang memungkinkan load balancing dan ketersediaan tinggi secara otomatis.

  1. Peroleh URI string koneksi instans kluster sharded. Untuk informasi selengkapnya, lihat Hubungkan ke instans kluster sharded.

  2. Dalam aplikasi Anda, gunakan URI string koneksi untuk menghubungkan ke instans tersebut. Untuk informasi selengkapnya, lihat Hubungkan ke instans kluster sharded menggunakan kode.

    Contoh Java berikut menghubungkan akun database test ke database 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));

    Dengan metode ini, client secara otomatis mendistribusikan permintaan ke beberapa node mongos untuk load balancing. Jika URI berisi dua atau lebih node mongos dan salah satunya gagal, client secara otomatis melakukan failover ke node sehat yang tersisa.

Jika Anda memiliki beberapa node mongos, Anda dapat mengelompokkannya berdasarkan aplikasi untuk isolasi akses. Misalnya, dengan empat node mongos dan dua aplikasi, Anda dapat mengonfigurasi Aplikasi A untuk menggunakan mongos 1 dan 2, sedangkan Aplikasi B menggunakan mongos 3 dan 4. Tentukan hanya alamat mongos yang sesuai dalam URI masing-masing aplikasi.

Catatan

Node mongos yang diakses oleh aplikasi saling terisolasi, tetapi shard backend tetap dibagi bersama.

Parameter koneksi umum

  • Terapkan pemisahan baca/tulis

    Tambahkan readPreference=secondaryPreferred ke opsi URI string koneksi untuk mengarahkan permintaan baca ke node secondary terlebih dahulu.

    Contoh:

    Akun database adalah test dan database-nya adalah admin.

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

    Tambahkan maxPoolSize=xx ke opsi URI string koneksi untuk membatasi ukuran kolam koneksi per client menjadi xx.

    Contoh berikut menetapkan ukuran kolam koneksi menjadi 100. Akun database adalah test dan database-nya adalah admin:

    mongodb://test:****@s-bp10fb1cf399****.mongodb.rds.aliyuncs.com:3717,s-bp10f49cdf5e****.mongodb.rds.aliyuncs.com:3717/admin?readPreference=secondaryPreferred&maxpoolsize=100
  • Pastikan penulisan (write) diakui oleh mayoritas node

    Tambahkan w=majority ke opsi URI string koneksi agar penulisan hanya berhasil setelah diakui oleh mayoritas node.

    Contoh:

    Akun database adalah test dan database-nya 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