Mengonfigurasi penggabungan koneksi terkelola

Halaman ini menjelaskan cara mengaktifkan, menghubungkan, 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, sehingga meningkatkan performa dan pemanfaatan resource.

Dengan menggunakan penggabungan koneksi terkelola, Anda dapat menskalakan beban kerja database dengan mengoptimalkan penggunaan resource dan latensi koneksi untuk instance AlloyDB. Penggabungan koneksi terkelola menetapkan koneksi server secara dinamis ke permintaan masuk jika memungkinkan menggunakan penggabungan dan multiplexing. Pendekatan ini memberikan peningkatan performa, terutama untuk koneksi yang diskalakan, dengan menyerap lonjakan koneksi yang tiba-tiba dan menggunakan kembali koneksi database yang ada. Alih-alih terhubung ke database tertentu, saat menggunakan penggabungan koneksi terkelola, aplikasi 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 singkat, 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 diperlukan 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 terkelola AlloyDB mendukung opsi konfigurasi penggabungan lanjutan berikut. Anda dapat menyesuaikan penggabungan koneksi terkelola agar sesuai dengan kebutuhan instance Anda menggunakan opsi konfigurasi ini. Anda dapat menetapkan konfigurasi ini berdasarkan tingkat instance menggunakan Google Cloud konsol, 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 waktu klien tetap terhubung. Setelah klien terputus, koneksi server akan dimasukkan kembali ke dalam kumpulan.
Ukuran pool maksimum
(connection-pooling-max-pool-size)
Ukuran maksimum kumpulan koneksi per pasangan pengguna dan database. 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 siaga
(connection-pooling-client-connection-idle-timeout)
Waktu saat 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.
Waktu tunggu koneksi server tidak ada aktivitas(detik)
(connection-pooling-server-connection-idle-timeout)
Waktu koneksi server tetap tidak ada aktivitas sebelum batas waktunya habis. Nilai ini dapat berkisar dari 0 hingga 2.147.483 detik, dan nilai default-nya adalah 600 detik.
Waktu tunggu kueri(dtk)
(connection-pooling-query-wait-timeout)
Waktu tunggu kueri hingga waktu habis. Nilai ini dapat berkisar dari 0 hingga 2.147.483 detik, dan nilai default-nya adalah 120 detik.
Pernyataan lisan maksimum yang disiapkan
(connection-pooling-max-prepared-statements)
Jumlah maksimum perintah pernyataan yang disiapkan yang dikirim dalam mode penggabungan transaksi. Nilai defaultnya adalah 0. Anda hanya dapat mengonfigurasi parameter ini menggunakan konsol Google Cloud .
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 penggabungan koneksi terkelola menutupnya. Nilai default-nya adalah 3.600 detik.

Secara default, penggabungan koneksi terkelola memulai koneksi ke server AlloyDB. Saat koneksi klien dibuat dan diautentikasi, pengumpulan 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 aktif selama lebih lama dari periode waktu tunggu koneksi server yang tidak aktif.

Mengaktifkan penggabungan koneksi terkelola

Anda dapat mengaktifkan penggabungan koneksi terkelola untuk instance yang sudah ada atau yang 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 konsolGoogle Cloud , Google Cloud CLI, atau AlloyDB API.

Mengaktifkan untuk instance kumpulan baca baru

Untuk membuat instance kumpulan baca baru dengan pengumpulan koneksi terkelola yang diaktifkan, lihat Membuat instance kumpulan baca. Anda dapat mengaktifkan penggabungan koneksi terkelola untuk instance menggunakan konsolGoogle Cloud , Google Cloud CLI, atau AlloyDB API.

Mengaktifkan untuk instance yang ada

Anda dapat mengaktifkan penggabungan koneksi terkelola untuk instance yang ada menggunakan konsolGoogle Cloud , Google Cloud CLI, atau AlloyDB API.

Konsol

  1. Buka halaman Cluster.

    Buka Cluster

  2. Klik cluster di kolom Nama resource.

  3. Di halaman Overview, buka Instances in your cluster.

  4. Klik Edit utama atau Edit kumpulan bacaan.

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

  6. Opsional: Untuk mengonfigurasi opsi penggabungan koneksi terkelola, klik Opsi penggabungan lanjutan.

    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 pool baca atau primer yang sudah 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 penggabungan koneksi terkelola.
  • 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 Anda dengan menetapkan opsi konfigurasi lanjutan. Untuk mengetahui informasi selengkapnya tentang cara menyetel opsi konfigurasi, lihat Mengubah penggabungan koneksi terkelola untuk instance.

REST

Untuk mengaktifkan penggabungan koneksi terkelola untuk instance pool baca atau primer yang sudah 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 diawali 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 penggabungan koneksi terkelola sama dengan koneksi database langsung, kecuali pada port yang berbeda. Penggabungan koneksi terkelola memproses di 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 koneksi apa pun ke pool koneksi terkelola. Secara default, hanya koneksi SSL yang diterima. Untuk mengizinkan koneksi yang tidak dienkripsi, gunakan perintah gcloud alloydb instances update berikut untuk menyetel 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 Anda menggunakan opsi konfigurasi lanjutan. Opsi konfigurasi ini disebut flag penggabungan koneksi terkelola. Untuk mengetahui informasi selengkapnya tentang opsi konfigurasi, nilai default, dan rentangnya, lihat opsi konfigurasi lanjutan.

Anda dapat mengubah opsi konfigurasi 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 Overview, buka Instances in your cluster.

  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 siaga
    • Waktu tunggu koneksi server tidak ada aktivitas
    • Waktu tunggu kueri habis
    • 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 \
      | --connection-pooling-server-lifetime=SERVER_LIFETIME \
      | --connection-pooling-client-connection-idle-timeout=CLIENT_CONNECTION_IDLE_TIMEOUT \
    }

Ganti kode berikut:

  • INSTANCE_ID: nama instance AlloyDB yang ingin Anda nonaktifkan penggabungan koneksi terkelola.
  • PROJECT_ID: ID project.
  • REGION_ID: ID region.
  • CLUSTER_ID: ID cluster.
  • Anda dapat mengonfigurasi opsi berikut:

    • --connection-pooling-pool-mode. 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
    • --connection-pooling-server-lifetime
    • --connection-pooling-client-connection-idle-timeout

REST

Untuk mengubah opsi konfigurasi penggabungan koneksi terkelola untuk instance pool 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. 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 Google Cloud konsol, Google Cloud CLI, atau AlloyDB API.

Konsol

  1. Buka halaman Cluster.

    Buka Cluster

  2. Klik cluster di kolom Nama Resource.

  3. Di halaman Ringkasan, temukan instance yang ingin Anda lihat status penggabungan koneksi terkelolanya. Kolom Managed connection pooling menampilkan apakah fitur ini 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 konsolGoogle Cloud , Google Cloud CLI, atau AlloyDB API.

Konsol

  1. Buka halaman Cluster.

    Buka Cluster

  2. Klik cluster di kolom Nama Resource.

  3. Di halaman Overview, buka Instances in your cluster.

  4. Klik Edit instance atau Edit read pool untuk instance yang ingin Anda nonaktifkan koneksi penggabungan terkelolanya.

  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 penggabungan koneksi terkelola.
  • PROJECT_ID: ID project.
  • REGION_ID: ID region.
  • CLUSTER_ID: ID cluster.

REST

Untuk menonaktifkan penggabungan koneksi terkelola untuk instance pool baca yang sudah 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 kerja pooling koneksi terkelola 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 aktif yang tidak memiliki permintaan kueri 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 aktif per database.
Waktu tunggu rata-rata

/database/conn_pool/client_connections_avg_wait_time
Rata-rata waktu yang dihabiskan oleh semua klien dalam status menunggu untuk server dalam mikrodetik per database.

Untuk mengetahui informasi selengkapnya, lihat Metrik AlloyDB.

Batasan

Batasan berikut berlaku selama rilis Pratinjau dan dapat berubah atau dihapus setelah rilis GA atau setelahnya:

  • Managed connection pooling tidak mendukung koneksi dengan Proxy Auth AlloyDB atau AlloyDB Language Connectors.
  • Jika Anda menggunakan penggabungan koneksi terkelola dalam mode penggabungan transaksi, maka fitur SQL berikut tidak didukung:
    • SET/RESET
    • LISTEN
    • WITH HOLD CURSOR
    • PREPARE/DEALLOCATE
    • Tabel sementara PRESERVE/DELETE ROW
    • LOAD
    • Kunci saran tingkat sesi
    • Rencana yang disiapkan di tingkat protokol
  • Penggabungan koneksi terkelola tidak didukung untuk koneksi IP publik.