Mengonfigurasi kumpulan koneksi
Beberapa library klien Cloud Bigtable dapat digunakan untuk mengonfigurasi jumlah saluran gRPC dalam kumpulan koneksi klien, yang juga dikenal sebagai kumpulan saluran. Umumnya, konfigurasi default sudah benar, dan Anda tidak perlu mengubahnya.
Kumpulan koneksi secara otomatis diubah ukurannya sesuai kebutuhan saat Anda menggunakan library klien Cloud Bigtable untuk Java versi 2.23.0 atau yang lebih baru, dan saat Anda menggunakan klien Cloud Bigtable HBase untuk Java versi 2.9.1 atau yang lebih baru.
Halaman ini menjelaskan cara menentukan ukuran kumpulan koneksi yang optimal untuk aplikasi Anda, dan menampilkan cuplikan kode yang menunjukkan cara mengonfigurasi kumpulan koneksi.
Sebelum membaca halaman ini, baca ringkasan Kumpulan koneksi besar untuk mempelajari cara kerjanya dan apakah Anda harus mengubah kumpulan koneksi Anda.
Library klien berikut menawarkan penggabungan koneksi dan memungkinkan Anda mengonfigurasi jumlah kumpulan:
- Library klien Go untuk Cloud Bigtable
- Klien Cloud Bigtable HBase untuk Java
- Library klien Cloud Bigtable untuk Java
- Library klien Cloud Bigtable C++
Menentukan ukuran kumpulan koneksi terbaik
Idealnya, untuk menyisakan ruang bagi fluktuasi traffic, kumpulan koneksi memiliki sekitar dua kali jumlah koneksi yang diperlukan untuk saturasi maksimum. Karena satu koneksi dapat menangani maksimum 100 permintaan serentak, antara 10 hingga 50 permintaan yang belum terselesaikan per koneksi akan optimal. Konsep ini dijelaskan secara lebih mendetail di Kumpulan koneksi.
Pantau traffic Anda setelah melakukan perubahan, dan sesuaikan jumlah koneksi di kumpulan Anda jika perlu.
Langkah-langkah berikut membantu Anda menghitung jumlah koneksi optimal di kumpulan saluran menggunakan metrik sisi klien seperti metrik yang tersedia dari OpenCensus.
- Dari metrik sisi klien, kumpulkan informasi berikut:
- Jumlah maksimum kueri per detik (QPS) per klien saat aplikasi Anda menjalankan beban kerja standar.
- Latensi rata-rata (waktu respons untuk satu permintaan) dalam milidetik.
- Tentukan jumlah permintaan yang dapat Anda kirim secara serial per detik dengan membagi 1.000 dengan nilai latensi rata-rata.
- Bagi QPS dalam detik dengan jumlah permintaan seri per detik.
- Bagi hasilnya dengan 50 permintaan per saluran untuk menentukan ukuran kumpulan saluran minimum yang optimal. (Jika penghitungan Anda kurang dari 2, gunakan minimal 2 saluran untuk memastikan redundansi.)
- Bagi hasil yang sama dengan 10 permintaan per saluran untuk menentukan ukuran kumpulan saluran yang optimal.
Langkah-langkah ini dinyatakan dalam persamaan berikut:
(QPS dtk ÷ (1.000 ÷ latensi md)) ÷ 50 streaming = Jumlah koneksi optimal minimum
(QPS detik ÷ (1.000 ÷ latensi md)) ÷ 10 streaming = Jumlah koneksi optimal maksimum
Contoh
Aplikasi Anda biasanya mengirim 50.000 permintaan per detik, dan latensi rata-ratanya adalah 10 mdtk. Bagilah 1.000 dengan 10 mdtk untuk menentukan bahwa Anda dapat mengirim 100 permintaan secara berurutan per detik. Bagi angka tersebut menjadi 50.000 untuk mendapatkan paralelisme yang diperlukan untuk mengirim 50.000 QPS: 500. Setiap saluran dapat memiliki maksimal 100 permintaan secara serentak, dan penggunaan saluran target Anda adalah antara 10 hingga 50 streaming serentak. Oleh karena itu, untuk menghitung nilai minimum, bagi 500 dengan 50 untuk mendapatkan 10. Untuk menemukan nilai maksimum, bagi 500 dengan 10 untuk mendapatkan 50. Artinya, ukuran kumpulan saluran Anda untuk contoh ini harus antara 10 dan 50 koneksi.
Menyetel ukuran kumpulan
Contoh kode berikut menunjukkan cara mengonfigurasi jumlah kumpulan dalam library klien yang memungkinkan Anda menetapkan ukuran kumpulan.
Go
HBase
Contoh ini hanya berlaku untuk versi library klien sebelum 2.9.1, saat pengubahan ukuran otomatis diperkenalkan.
Java
Contoh ini hanya berlaku untuk versi library klien sebelum 2.23.0, saat pengubahan ukuran otomatis diperkenalkan.