Pilih preferensi cookie Anda

Kami menggunakan cookie penting serta alat serupa yang diperlukan untuk menyediakan situs dan layanan. Kami menggunakan cookie performa untuk mengumpulkan statistik anonim sehingga kami dapat memahami cara pelanggan menggunakan situs dan melakukan perbaikan. Cookie penting tidak dapat dinonaktifkan, tetapi Anda dapat mengklik “Kustom” atau “Tolak” untuk menolak cookie performa.

Jika Anda setuju, AWS dan pihak ketiga yang disetujui juga akan menggunakan cookie untuk menyediakan fitur situs yang berguna, mengingat preferensi Anda, dan menampilkan konten yang relevan, termasuk iklan yang relevan. Untuk menerima atau menolak semua cookie yang tidak penting, klik “Terima” atau “Tolak”. Untuk membuat pilihan yang lebih detail, klik “Kustomisasi”.

Menghubungkan ke Amazon DocumentDB sebagai set replika

Mode fokus
Menghubungkan ke Amazon DocumentDB sebagai set replika - Amazon DocumentDB

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Saat Anda mengembangkan pada Amazon DocumentDB (dengan kompatibilitas MongoDB), Anda sebaiknya membuat sambungan ke klaster Anda sebagai set replika dan mendistribusikan pembacaan ke instans replika menggunakan kemampuan preferensi baca bawaan driver Anda. Bagian ini membahas lebih dalam apa artinya dan menjelaskan bagaimana Anda dapat terhubung ke klaster Amazon DocumentDB Anda sebagai set replika menggunakan SDK for Python sebagai contoh.

Amazon DocumentDB memiliki tiga titik akhir yang dapat Anda gunakan untuk terhubung ke klaster Anda:

  • Titik akhir klaster

  • Reader endpoint

  • Endpoint instans

Dalam kebanyakan kasus saat Anda menghubungkan ke Amazon DocumentDB, kami merekomendasikan Anda menggunakan titik akhir klaster. Ini adalah CNAME yang menunjuk ke instans primer di klaster Anda, seperti yang ditunjukkan pada diagram berikut.

Saat menggunakan terowongan SSH, kami rekomendasikan Anda menyambung ke klaster Anda menggunakan titik akhir klaster dan jangan mencoba untuk menyambung dalam mode set replika (yaitu, menentukan replicaSet=rs0 dalam string koneksi Anda) karena akan menghasilkan kesalahan.

catatan

Untuk informasi selengkapnya tentang titik akhir Amazon DocumentDB, lihat Titik akhir Amazon DocumentDB.

Diagram menunjukkan titik akhir Amazon DocumentDB termasuk titik akhir klaster, pembaca, dan instans.

Dengan menggunakan titik akhir klaster, Anda dapat terhubung ke klaster Anda dalam mode set replika. Anda kemudian dapat menggunakan kemampuan driver preferensi baca bawaan. Dalam contoh berikut, menentukan /?replicaSet=rs0 menandakan untuk SDK yang ingin Anda hubungkan sebagai set replika. Jika Anda menghilangkan /?replicaSet=rs0', klien merutekan semua permintaan ke titik akhir klaster, yaitu instans primer Anda.

## Create a MongoDB client, open a connection to Amazon DocumentDB as a ## replica set and specify the read preference as secondary preferred client = pymongo.MongoClient('mongodb://<user-name>:<password>@mycluster.node.us-east-1.docdb.amazonaws.com:27017/?replicaSet=rs0')

Keuntungan menghubungkan sebagai set replika adalah memungkinkan SDK Anda menemukan topografi klaster secara otomatis, termasuk saat instans ditambahkan atau dihapus dari klaster. Anda kemudian dapat menggunakan klaster Anda secara lebih efisien dengan merutekan permintaan baca ke instans replika Anda.

Ketika Anda terhubung sebagai set replika, Anda dapat menentukan readPreference untuk koneksi tersebut. Jika Anda menentukan preferensi baca secondaryPreferred, klien merutekan kueri baca ke replika Anda dan menulis kueri ke instans primer Anda (seperti dalam diagram berikut). Ini adalah penggunaan yang lebih baik dari sumber daya klaster Anda. Untuk informasi selengkapnya, lihat Baca opsi preferensi.

## Create a MongoDB client, open a connection to Amazon DocumentDB as a ## replica set and specify the read preference as secondary preferred client = pymongo.MongoClient('mongodb://<user-name>:<password>@mycluster.node.us-east-1.docdb.amazonaws.com:27017/?replicaSet=rs0&readPreference=secondaryPreferred')
Diagram yang menunjukkan Amazon DocumentDB readPreference: secondaryPreferred.

Pembacaan dari replika Amazon DocumentDB pada akhirnya adalah konsisten. Mereka mengembalikan data dalam urutan yang sama seperti yang tertulis di primer, dan sering kali ada jeda replikasi kurang dari 50 ms. Anda dapat memantau kelambatan replika untuk klaster Anda menggunakan CloudWatch metrik DBInstanceReplicaLag Amazon dan. DBClusterReplicaLagMaximum Untuk informasi selengkapnya, lihat Memantau Amazon DocumentDB dengan CloudWatch.

Tidak seperti arsitektur basis data monolitik tradisional, Amazon DocumentDB memisahkan penyimpanan dan komputasi. Dengan arsitektur modern ini, kami mendorong Anda untuk membaca skala pada instans replika. Membaca pada instans replika tidak memblokir penulisan yang direplikasi dari instans primer. Anda dapat menambahkan hingga 15 instans replika baca dalam klaster dan menskalakan keluar hingga jutaan pembacaan per detik.

Manfaat utama menghubungkan sebagai set replika dan mendistribusikan pembacaan replika adalah bahwa hal itu meningkatkan sumber daya secara keseluruhan dalam klaster Anda yang tersedia untuk melakukan pekerjaan bagi aplikasi Anda. Sebaiknya hubungkan sebagai set replika sebagai praktik terbaik. Lebih lanjut, kami merekomendasikannya paling sering dalam skenario berikut:

  • Anda menggunakan CPU hampir 100 persen pada primer Anda.

  • Rasio hit buffer cache mendekati nol.

  • Anda mencapai batas koneksi atau kursor untuk masing-masing instans.

Menskalakan ke atas ukuran instans klaster adalah sebuah opsi, dan dalam beberapa kasus, itu bisa menjadi cara terbaik untuk menskalakan klaster. Tetapi Anda juga harus mempertimbangkan cara menggunakan replika yang sudah Anda miliki di klaster dengan lebih baik. Hal ini memungkinkan Anda meningkatkan skala tanpa peningkatan biaya dari penggunaan tipe instans yang lebih besar. Kami juga menyarankan Anda memantau dan memperingatkan batas-batas ini (yaitu CPUUtilizationDatabaseConnections,, danBufferCacheHitRatio) menggunakan CloudWatch alarm sehingga Anda tahu kapan sumber daya sedang banyak digunakan.

Untuk informasi selengkapnya, lihat topik berikut.

Menggunakan koneksi cluster

Pertimbangkan skenario menggunakan semua koneksi di klaster Anda. Sebagai contoh, sebuah instans r5.2xlarge memiliki batas 4.500 koneksi (dan 450 kursor terbuka). Jika Anda membuat tiga instans klaster Amazon DocumentDB dan terhubung hanya ke instans primer menggunakan titik akhir klaster, batas klaster Anda untuk koneksi terbuka dan kursor masing-masing adalah 4.500 dan 450. Anda mungkin mencapai batas ini jika Anda membangun aplikasi yang menggunakan banyak pekerja yang berputar dalam kontainer. Kontainer membuka sejumlah koneksi sekaligus dan memenuhi klaster.

Sebagai gantinya, Anda dapat terhubung ke klaster Amazon DocumentDB sebagai set replika dan mendistribusikan pembacaan Anda ke instans replika. Anda kemudian dapat secara efektif melipatgandakan jumlah koneksi dan kursor yang tersedia di klaster menjadi 13.500 dan 1.350 masing-masing. Menambahkan lebih banyak instans ke klaster hanya meningkatkan jumlah koneksi dan kursor untuk beban kerja baca. Jika Anda perlu meningkatkan jumlah koneksi untuk penulisan ke klaster Anda, sebaiknya tingkatkan ukuran instans.

catatan

Jumlah koneksi untuk instans large, xlarge, dan 2xlarge meningkat dengan ukuran instans hingga 4.500. Jumlah maksimum koneksi per instans untuk instans 4xlarge atau lebih besar adalah 4.500. Untuk informasi selengkapnya tentang batasan menurut tipe instans, lihat Batas instans.

Biasanya kami tidak menyarankan Anda untuk terhubung ke klaster Anda menggunakan preferensi baca secondary. Hal ini karena jika tidak ada instans replika di klaster Anda, pembacaan akan gagal. Misalnya, anggaplah bahwa Anda memiliki dua instans klaster Amazon DocumentDB dengan satu satu primer dan satu replika. Jika replika mengalami masalah, permintaan baca dari kolam koneksi yang ditetapkan sebagai secondary gagal. Keuntungan dari secondaryPreferred adalah bahwa jika klien tidak dapat menemukan instans replika yang cocok untuk terhubung ke, hal itu akan mengembalikan ke primer untuk pembacaan.

Beberapa kolam koneksi

Dalam beberapa skenario, pembacaan dalam aplikasi harus memiliki read-after-write konsistensi, yang hanya dapat disajikan dari contoh utama di Amazon DocumentDB. Dalam skenario ini, Anda dapat membuat dua kumpulan koneksi klien: satu untuk menulis dan satu untuk pembacaan yang membutuhkan read-after-write konsistensi. Untuk melakukan itu, kode Anda akan terlihat seperti berikut ini.

## Create a MongoDB client, ## open a connection to Amazon DocumentDB as a replica set and specify the readPreference as primary clientPrimary = pymongo.MongoClient('mongodb://<user-name>:<password>@mycluster.node.us-east-1.docdb.amazonaws.com:27017/?replicaSet=rs0&readPreference=primary') ## Create a MongoDB client, ## open a connection to Amazon DocumentDB as a replica set and specify the readPreference as secondaryPreferred secondaryPreferred = pymongo.MongoClient('mongodb://<user-name>:<password>@mycluster.node.us-east-1.docdb.amazonaws.com:27017/?replicaSet=rs0&readPreference=secondaryPreferred')

Opsi lainnya adalah membuat kolam koneksi tunggal dan menimpa preferensi baca untuk koleksi tertentu.

##Specify the collection and set the read preference level for that collection col = db.review.with_options(read_preference=ReadPreference.SECONDARY_PREFERRED)

Ringkasan

Untuk menggunakan sumber daya di klaster Anda dengan lebih baik, sebaiknya hubungkan ke klaster Anda menggunakan mode set replika. Jika cocok untuk aplikasi Anda, Anda dapat membaca skala aplikasi Anda dengan mendistribusikan pembacaan Anda ke instans replika.

Di halaman ini

PrivasiSyarat situsPreferensi cookie
© 2025, Amazon Web Services, Inc. atau afiliasinya. Semua hak dilindungi undang-undang.