Mengonfigurasi penggabungan koneksi terkelola

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 alloydb.instances.update, yang diperlukan untuk mengaktifkan dan menggunakan penggabungan koneksi terkelola.

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

  1. Buka halaman Cluster.

    Buka Cluster

  2. Klik cluster di kolom Nama resource.

  3. Di halaman Ringkasan, buka Instance di cluster Anda.

  4. Klik Edit primary atau Edit read pool.

  5. Di bagian Managed connection pool, centang kotak Enable managed connection pool.

  6. 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.

  7. 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

  1. Buka halaman Cluster.

    Buka Cluster

  2. Klik cluster di kolom Resource Name.

  3. Di halaman Ringkasan, buka Instance di cluster Anda.

  4. Klik Edit instance atau Edit read pool untuk instance yang ingin Anda ubah.

  5. Di bagian Managed connection pool, luaskan Advanced pooling options.

  6. 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
  7. 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 dari session atau transaction.
    • --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 dari session atau transaction.
    • 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

  1. Buka halaman Cluster.

    Buka Cluster

  2. Klik cluster di kolom Resource Name.

  3. 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

  1. Buka halaman Cluster.

    Buka Cluster

  2. Klik cluster di kolom Resource Name.

  3. Di halaman Ringkasan, buka Instance di cluster Anda.

  4. Klik Edit instance atau Edit read pool untuk instance yang koneksinya ingin Anda nonaktifkan.

  5. Di bagian Managed connection pool, hapus centang pada kotak Enable managed connection pool.

  6. 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:
  • active: jumlah koneksi aktif per database termasuk klien tidak ada aktivitas yang tidak memiliki permintaan kueri yang tertunda.
  • waiting: jumlah klien yang menunggu koneksi server per database.
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:
  • active: jumlah koneksi aktif per database.
  • idle: jumlah koneksi server yang tidak ada aktivitas per database.
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