Halaman ini menjelaskan cara mengaktifkan, terhubung ke, dan memantau penggabungan koneksi terkelola di AlloyDB untuk PostgreSQL. Penggabungan koneksi terkelola adalah pola desain yang mengoptimalkan pengelolaan koneksi database dengan mempertahankan kumpulan koneksi yang telah dibuat sebelumnya. Kumpulan koneksi ini kemudian digunakan kembali oleh aplikasi, bukan membuka dan menutup koneksi untuk setiap operasi database, yang meningkatkan performa dan penggunaan resource.
Dengan menggunakan penggabungan koneksi terkelola, Anda dapat menskalakan beban kerja database dengan mengoptimalkan penggunaan resource dan latensi koneksi untuk instance AlloyDB Anda. Penggabungan koneksi terkelola secara dinamis menetapkan koneksi server ke permintaan masuk jika memungkinkan menggunakan penggabungan dan multiplexing. Pendekatan ini memberikan peningkatan performa, terutama untuk koneksi yang diskalakan, dengan menyerap lonjakan koneksi mendadak dan menggunakan kembali koneksi database yang ada. Alih-alih terhubung ke database tertentu, saat menggunakan penggabungan koneksi terkelola, aplikasi akan terhubung ke pooler, yang memberikan waktu koneksi yang lebih singkat dan skalabilitas untuk beban kerja baca Anda.
Meskipun Anda dapat menggunakan penggabungan koneksi terkelola untuk beban kerja transaksional apa pun, penggabungan koneksi terkelola paling cocok untuk aplikasi yang berisi lebih banyak koneksi berumur pendek, atau aplikasi yang mungkin mengalami lonjakan koneksi.
Sebelum memulai
Anda harus terhubung ke instance menggunakan koneksi langsung. Connection pooling terkelola tidak mendukung koneksi dengan Proxy Auth AlloyDB atau AlloyDB Language Connectors.
Peran yang diperlukan
Untuk mendapatkan izin yang
Anda perlukan untuk mengaktifkan dan menggunakan penggabungan koneksi terkelola,
minta administrator untuk memberi Anda
peran IAM Cloud AlloyDB Admin (roles/alloydb.admin
) di instance AlloyDB.
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.
Peran bawaan ini berisi izin
, yang diperlukan untuk mengaktifkan dan menggunakan penggabungan koneksi terkelola.
alloydb.instances.update
Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.
Opsi konfigurasi lanjutan
Penggabungan koneksi yang dikelola AlloyDB mendukung opsi konfigurasi penggabungan lanjutan berikut. Anda dapat menyesuaikan penggabungan koneksi terkelola untuk memenuhi kebutuhan instance menggunakan opsi konfigurasi ini. Anda dapat menetapkan konfigurasi ini berdasarkan tingkat instance menggunakan konsol Google Cloud, gcloud CLI, atau AlloyDB API.
Nama konfigurasi | Deskripsi |
---|---|
Mode koneksi ( connection-pooling-pool-mode )
|
Untuk mode koneksi, Anda dapat memilih transaksi (default) atau sesi.
Transaksi ( transaction ):
Menggabungkan koneksi di tingkat transaksi. Koneksi server ditetapkan ke klien selama transaksi. Setelah transaksi selesai, koneksi server akan dimasukkan kembali ke dalam kumpulan. Sesi ( session ):
Menggabungkan koneksi di tingkat sesi. Koneksi server ditetapkan ke klien selama seluruh waktu koneksi tetap aktif. Setelah klien terputus, koneksi server akan dimasukkan kembali ke dalam kumpulan. |
Ukuran kumpulan maksimum ( connection-pooling-max-pool-size )
|
Ukuran maksimum kumpulan koneksi. Nilai defaultnya adalah 50 koneksi. |
Ukuran kumpulan minimum ( connection-pooling-min-pool-size )
|
Ukuran minimum kumpulan koneksi. Nilai defaultnya adalah 0 koneksi. |
Waktu tunggu koneksi klien yang tidak ada aktivitas ( connection-pooling-client-connection-idle-timeout )
|
Waktu koneksi klien tetap tidak ada aktivitas sebelum waktu tunggu habis. Nilai ini dapat berkisar dari 0 hingga 2.147.483 detik, dan nilai default-nya adalah 0 detik. Anda hanya dapat mengonfigurasi parameter ini menggunakan Konsol Google Cloud. |
Waktu tunggu koneksi server tidak ada aktivitas ( connection-pooling-server-connection-idle-timeout )
|
Waktu koneksi server tetap tidak ada aktivitas sebelum waktu tunggu habis. Nilai ini dapat berkisar dari 0 hingga 2.147.483 detik, dan nilai default-nya adalah 600 detik. |
Waktu tunggu kueri ( connection-pooling-query-wait-timeout )
|
Waktu yang ditunggu kueri hingga waktu tunggu habis. Nilai ini dapat berkisar dari 0 hingga 2.147.483 detik, dan nilai default-nya adalah 120 detik. |
Pernyataan yang disiapkan maksimum ( connection-pooling-max-prepared-statements )
|
Jumlah maksimum perintah pernyataan yang disiapkan yang dikirim dalam mode penggabungan transaksi. Nilai defaultnya adalah 0. |
Abaikan parameter startup ( connection-pooling-ignore-startup-parameters )
|
Parameter yang ingin Anda abaikan, yang tidak dilacak dalam paket startup secara default. |
Masa aktif server ( connection-pooling-server-lifetime )
|
Waktu maksimum koneksi server tidak digunakan sebelum kumpulan koneksi terkelola menutupnya. Nilai default-nya adalah 3.600 detik. Anda hanya dapat mengonfigurasi parameter ini menggunakan Konsol Google Cloud. |
Secara default, penggabungan koneksi terkelola memulai koneksi ke server AlloyDB. Saat koneksi klien dibuat dan diautentikasi, penggabungan koneksi terkelola dapat membuat satu atau beberapa koneksi server sehingga ukuran kumpulan cocok dengan konfigurasi yang dipilih. Koneksi klien kemudian diberi koneksi server yang tersedia. Koneksi server dipertahankan hingga ditutup secara eksplisit atau tidak ada aktivitas selama lebih lama dari periode waktu tunggu koneksi server tidak ada aktivitas.
Mengaktifkan penggabungan koneksi terkelola
Anda dapat mengaktifkan penggabungan koneksi terkelola untuk instance yang ada atau baru.
Mengaktifkan untuk instance utama baru
Untuk membuat instance utama baru dengan penggabungan koneksi terkelola yang diaktifkan, lihat Membuat instance utama. Anda dapat mengaktifkan penggabungan koneksi terkelola untuk instance menggunakan konsol Google Cloud, Google Cloud CLI, atau AlloyDB API.
Mengaktifkan untuk instance kumpulan operasi baca baru
Untuk membuat instance kumpulan operasi baca baru dengan penggabungan koneksi terkelola yang diaktifkan, lihat Membuat instance kumpulan operasi baca. Anda dapat mengaktifkan penggabungan koneksi terkelola untuk instance menggunakan konsol Google Cloud, Google Cloud CLI, atau AlloyDB API.
Mengaktifkan untuk instance yang ada
Anda dapat mengaktifkan penggabungan koneksi terkelola untuk instance yang ada menggunakan konsol Google Cloud, Google Cloud CLI, atau AlloyDB API.
Konsol
Buka halaman Cluster.
Klik cluster di kolom Nama resource.
Di halaman Ringkasan, buka Instance di cluster Anda.
Klik Edit primary atau Edit read pool.
Di bagian Managed connection pool, centang kotak Enable managed connection pool.
Opsional: Untuk mengonfigurasi opsi penggabungan koneksi terkelola, klik Advanced pooling options.
Anda dapat menyesuaikan opsi penggabungan koneksi terkelola untuk memenuhi kebutuhan instance Anda. Untuk mengetahui informasi selengkapnya, lihat opsi konfigurasi lanjutan.
Klik Simpan perubahan.
gcloud
Untuk mengaktifkan penggabungan koneksi terkelola untuk instance kumpulan primer atau baca yang ada, gunakan perintah gcloud alpha alloydb instances update
berikut:
gcloud alpha alloydb instances update INSTANCE_ID \
--project=PROJECT_ID \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--enable-connection-pooling
Ganti kode berikut:
INSTANCE_ID
: ID instance AlloyDB yang ingin Anda aktifkan pengumpulan koneksi terkelolanya.PROJECT_ID
: ID project.REGION_ID
: ID region.CLUSTER_ID
: ID cluster.
Setelah mengaktifkan penggabungan koneksi terkelola, Anda dapat menyesuaikan opsi penggabungan koneksi terkelola untuk memenuhi kebutuhan instance dengan menetapkan opsi konfigurasi lanjutan. Untuk informasi selengkapnya tentang cara menetapkan opsi konfigurasi, lihat Mengubah kumpulan koneksi terkelola untuk instance.
REST
Untuk mengaktifkan penggabungan koneksi terkelola untuk instance kumpulan primer atau baca yang ada, gunakan perintah berikut dan tetapkan connectionPoolConfig
:
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
PROJECT_ID
: ID project.LOCATION_ID
: ID region cluster.CLUSTER_ID
: ID cluster. Nama harus dimulai dengan huruf kecil dan dapat berisi huruf kecil, angka, dan tanda hubung.INSTANCE_ID
: ID instance.
Metode HTTP dan URL:
PATCH https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID/instances/INSTANCE_ID
Meminta isi JSON:
{
"connectionPoolConfig": {
"enabled": true
}
}
Menghubungkan ke penggabungan koneksi terkelola
Menghubungkan ke kumpulan koneksi terkelola sama dengan koneksi database langsung, kecuali di port yang berbeda. Penggabungan koneksi terkelola memproses koneksi pada port 6432. Setiap pengguna yang ditambahkan ke instance AlloyDB dapat terhubung menggunakan penggabungan koneksi terkelola.
Menghubungkan menggunakan autentikasi bawaan
Contoh perintah ini menghubungkan instance AlloyDB Anda ke penggabungan koneksi terkelola menggunakan autentikasi bawaan.
psql postgresql://USERNAME:PASSWORD@IP_ADDRESS:6432/postgres
Menghubungkan menggunakan koneksi SSL
Mode SSL instance juga berlaku untuk semua koneksi ke kumpulan koneksi
yang dikelola. Secara default, hanya koneksi SSL yang diterima. Untuk mengizinkan koneksi
tanpa enkripsi, gunakan perintah gcloud alloydb instances update
berikut untuk menetapkan mode SSL instance ke ALLOW_UNENCRYPTED_AND_ENCRYPTED
.
gcloud alloydb instances update INSTANCE_ID \
--project=PROJECT_ID \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--ssl-mode=ALLOW_UNENCRYPTED_AND_ENCRYPTED
Mengubah penggabungan koneksi terkelola untuk instance
Setelah mengaktifkan penggabungan koneksi terkelola, Anda dapat menyesuaikan opsi penggabungan koneksi terkelola untuk memenuhi kebutuhan instance menggunakan opsi konfigurasi lanjutan. Opsi konfigurasi ini disebut flag penggabungan koneksi terkelola. Untuk informasi selengkapnya tentang opsi konfigurasi, nilai default, dan rentangnya, lihat opsi konfigurasi lanjutan.
Anda dapat mengubah opsi konfigurasi pengumpulan koneksi terkelola untuk instance yang ada menggunakan konsol Google Cloud, Google Cloud CLI, atau AlloyDB API.
Konsol
Buka halaman Cluster.
Klik cluster di kolom Resource Name.
Di halaman Ringkasan, buka Instance di cluster Anda.
Klik Edit instance atau Edit read pool untuk instance yang ingin Anda ubah.
Di bagian Managed connection pool, luaskan Advanced pooling options.
Ubah opsi penggabungan lanjutan yang ingin Anda perbarui. Anda dapat mengubah opsi berikut:
- Mode koneksi
- Ukuran kumpulan maksimum
- Ukuran kumpulan minimum
- Koneksi klien maksimum
- Waktu tunggu koneksi klien yang tidak ada aktivitas
- Waktu tunggu koneksi server yang tidak ada aktivitas
- Waktu tunggu tunggu kueri
- Pernyataan yang disiapkan maksimum
- Mengabaikan parameter startup
- Masa aktif server
Klik Update instance.
gcloud
Untuk mengubah opsi konfigurasi penggabungan koneksi terkelola untuk instance yang ada, gunakan perintah gcloud alpha alloydb instances update
berikut:
gcloud alpha alloydb instances update INSTANCE_ID \
--project=PROJECT_ID \
--region=REGION_ID \
--cluster=CLUSTER_ID \
{ \
--connection-pooling-pool-mode=CONNECTION_MODE \
| --connection-pooling-max-pool-size=MAX_POOL_SIZE \
| --connection-pooling-min-pool-size=MIN_POOL_SIZE \
| --connection-pooling-max-client-connections=MAX_CLIENT_CONNECTION \
| --connection-pooling-server-idle-timeout=SERVER_IDLE_TIMEOUT_PERIOD \
| --connection-pooling-query-wait-timeout=QUERY_WAIT_TIMEOUT_PERIOD \
| --connection-pooling-ignore-startup-parameters=IGNORE_STARTUP_PARAMETERS \
}
Ganti kode berikut:
INSTANCE_ID
: nama instance AlloyDB yang ingin Anda nonaktifkan pengumpulan koneksi terkelolanya.PROJECT_ID
: ID project.REGION_ID
: ID region.CLUSTER_ID
: ID cluster.Anda dapat mengonfigurasi opsi berikut:
--connection-pooling-pool-mode
. Ini harus salah satu darisession
atautransaction
.--connection-pooling-max-pool-size
--connection-pooling-min-pool-size
--connection-pooling-max-client-connections
--connection-pooling-server-idle-timeout
--connection-pooling-query-wait-timeout
--connection-pooling-ignore-startup-parameters
REST
Untuk mengubah opsi konfigurasi penggabungan koneksi terkelola untuk instance
kumpulan operasi baca yang ada, gunakan perintah berikut dan tetapkan connectionPoolConfig
:
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
PROJECT_ID
: ID project.LOCATION_ID
: ID region cluster.CLUSTER_ID
: ID cluster yang Anda buat. Nama harus diawali dengan huruf kecil dan dapat berisi huruf kecil, angka, dan tanda hubung.INSTANCE_ID
: ID instance yang Anda buat.Anda dapat mengonfigurasi opsi berikut:
POOL_MODE
. Ini harus salah satu darisession
atautransaction
.MAX_POOL_SIZE
MIN_POOL_SIZE
MAX_CLIENT_CONNECTION
SERVER_IDLE_TIMEOUT
QUERY_WAIT_TIMEOUT
IGNORE_STARTUP_PARAMETERS
Metode HTTP dan URL:
PATCH https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID/instances/INSTANCE_ID
Meminta isi JSON:
{
"connectionPoolConfig": {
"enabled": true,
"flags": {
"pool_mode": "POOL_MODE",
"max_pool_size": "MAX_POOL_SIZE",
"min_pool_size": "MIN_POOL_SIZE",
"max_client_connection": "MAX_CLIENT_CONNECTION",
"server_idle_timeout": "SERVER_IDLE_TIMEOUT",
"query_wait_timeout": "QUERY_WAIT_TIMEOUT",
"ignore_startup_parameters": "IGNORE_STARTUP_PARAMETERS"
},
}
}
Melihat status penggabungan koneksi terkelola untuk instance
Anda dapat melihat status penggabungan koneksi terkelola untuk instance menggunakan konsol Google Cloud, Google Cloud CLI, atau AlloyDB API.
Konsol
Buka halaman Cluster.
Klik cluster di kolom Resource Name.
Di halaman Ringkasan, temukan instance yang status kumpulan koneksi terkelolanya ingin Anda lihat. Kolom Penggabungan koneksi terkelola menunjukkan apakah penggabungan diaktifkan atau dinonaktifkan.
gcloud
Untuk melihat status penggabungan koneksi terkelola untuk instance yang ada,
gunakan perintah gcloud alpha alloydb instances describe
berikut:
gcloud alpha alloydb instances describe INSTANCE_ID \
--project=PROJECT_ID \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--format="value(connectionPoolConfig.enabled)"
Ganti kode berikut:
INSTANCE_ID
: nama instance AlloyDB yang ingin Anda ubah opsi penggabungan koneksi terkelolanya.PROJECT_ID
: ID project.REGION_ID
: ID region.CLUSTER_ID
: ID cluster.
Jika penggabungan koneksi terkelola diaktifkan, respons berikut akan ditampilkan:
True
REST
Untuk melihat status penggabungan koneksi terkelola untuk instance AlloyDB Anda, gunakan perintah berikut dan cari connectionPoolConfig
:
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
PROJECT_ID
: ID project.LOCATION_ID
: ID region cluster.CLUSTER_ID
: ID cluster yang Anda buat. Nama harus diawali dengan huruf kecil dan dapat berisi huruf kecil, angka, dan tanda hubung.INSTANCE_ID
: ID instance yang Anda buat.
Metode HTTP dan URL:
GET https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID/instances/INSTANCE_ID
Menonaktifkan penggabungan koneksi terkelola untuk instance yang ada
Anda dapat menonaktifkan penggabungan koneksi terkelola untuk instance yang ada menggunakan konsol Google Cloud, Google Cloud CLI, atau AlloyDB API.
Konsol
Buka halaman Cluster.
Klik cluster di kolom Resource Name.
Di halaman Ringkasan, buka Instance di cluster Anda.
Klik Edit instance atau Edit read pool untuk instance yang koneksinya ingin Anda nonaktifkan.
Di bagian Managed connection pool, hapus centang pada kotak Enable managed connection pool.
Klik Update instance.
gcloud
Untuk menonaktifkan penggabungan koneksi terkelola untuk instance yang ada, gunakan perintah gcloud alpha alloydb instances update
berikut:
gcloud alpha alloydb instances update INSTANCE_ID \
--project=PROJECT_ID \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--no-enable-connection-pooling
Ganti kode berikut:
INSTANCE_ID
: nama instance AlloyDB yang ingin Anda nonaktifkan pengumpulan koneksi terkelolanya.PROJECT_ID
: ID project.REGION_ID
: ID region.CLUSTER_ID
: ID cluster.
REST
Untuk menonaktifkan penggabungan koneksi terkelola untuk instance kumpulan operasi baca yang ada,
gunakan perintah berikut dan tetapkan connectionPoolConfig
ke false
:
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
PROJECT_ID
: ID project.LOCATION_ID
: ID region cluster.CLUSTER_ID
: ID cluster yang Anda buat. Nama harus diawali dengan huruf kecil dan dapat berisi huruf kecil, angka, dan tanda hubung.INSTANCE_ID
: ID instance yang Anda buat.
Metode HTTP dan URL:
PATCH https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID/instances/INSTANCE_ID
Meminta isi JSON:
{
"connectionPoolConfig": {
"enabled": false
}
}
Memantau penggabungan koneksi terkelola
AlloyDB menyediakan metrik berikut untuk membantu Anda memantau cara pengelolaan kumpulan koneksi berjalan di instance Anda. Anda dapat melihat metrik ini menggunakan Metrics Explorer.
Nama metrik | Deskripsi |
---|---|
Jumlah kumpulan koneksi/database/conn_pool/num_pools |
Jumlah total kumpulan koneksi per database. |
Koneksi klien/database/conn_pool/client_connections |
Melacak jumlah koneksi klien yang dikelompokkan berdasarkan status koneksi klien per database. Status
yang disertakan dalam metrik ini adalah:
|
Koneksi server/database/conn_pool/server_connections |
Melacak jumlah koneksi server yang dikelompokkan berdasarkan status koneksi server per database. Status
yang disertakan dalam metrik ini adalah:
|
Rata-rata waktu tunggu/database/conn_pool/client_connections_avg_wait_time |
Waktu rata-rata yang dihabiskan oleh semua klien dalam status menunggu server dalam mikrodetik per database. |
Untuk informasi selengkapnya, lihat Metrik AlloyDB.
Batasan
Batasan berikut berlaku selama rilis Pratinjau dan dapat berubah atau dihapus setelah rilis GA atau setelahnya:
- Connection pooling terkelola tidak mendukung koneksi dengan Proxy Auth AlloyDB atau AlloyDB Language Connectors.
- Jika Anda menggunakan penggabungan koneksi terkelola dalam mode penggabungan transaksi,
fitur SQL berikut tidak didukung:
SET/RESET
LISTEN
WITH HOLD CURSOR
PREPARE/DEALLOCATE
- Tabel sementara
PRESERVE/DELETE ROW
LOAD
- Kunci saran tingkat sesi
- Rencana siap pakai tingkat protokol