Apa itu kolam koneksi outbound?
Data ditransmisikan secara serial melalui koneksi persisten berbasis HTTP, yang berarti pengirim harus menunggu respons terhadap permintaan sebelumnya sebelum mengirim permintaan berikutnya. Kolam koneksi outbound menyediakan sumber daya koneksi bagi instans API Gateway untuk mengakses layanan backend.
Sebagai contoh, Anda membeli instans khusus tipe api.s1.small dengan ukuran kolam koneksi outbound sebesar 1.200, dan layanan backend Anda memerlukan waktu satu detik untuk merespons setiap permintaan. Dalam kondisi ini, jumlah maksimum permintaan outbound per detik (RPS) yang didukung oleh instans tersebut adalah 1.200. Jika instans Anda mengirim lebih dari 1.200 permintaan ke layanan backend dalam satu detik, permintaan tambahan akan masuk ke antrian karena kolam koneksi telah penuh. Apabila permintaan gagal mendapatkan sumber daya koneksi dalam waktu 500 milidetik, error Backend service connect failed 'Connection lease request time out' akan dikembalikan. Untuk mencegah error semacam ini, Anda dapat mengonfigurasi Simple Log Service agar mengirim peringatan sebelum sumber daya koneksi habis, sehingga kekurangan sumber daya dapat ditangani sedini mungkin.
Prasyarat
Log API Gateway telah direkam. Untuk informasi selengkapnya, lihat Gunakan Log Service untuk mengelola log panggilan API.
Konfigurasikan aturan peringatan untuk kolam koneksi
Log Service memicu peringatan ketika kondisi yang Anda definisikan dalam aturan peringatan terpenuhi.
Saat kolam koneksi outbound habis, API Gateway mengembalikan error Backend service connect failed 'Connection lease request time out' kepada klien. Error ini dicatat dalam bidang errorMessage pada log. Anda dapat mengonfigurasi peringatan berdasarkan pesan error ini. Untuk informasi selengkapnya, lihat Konfigurasikan aturan pemantauan peringatan di Log Service.
Pada Langkah 2 topik yang dirujuk, Anda dapat mengonfigurasi aturan peringatan berdasarkan ID instans, ID error, dan pesan error. Cuplikan kode berikut menyediakan pernyataan kueri dan analisis.
instanceId: apigateway-cn-XXXXX and errorId : D504CO and '`Connection lease request time out`'
Pada kotak dialog Query and Statistics, klik tab Advanced Settings. Atur Type menjadi Logstore. Untuk Region, pilih wilayah tempat instans berada. Untuk Project dan Logstore, masukkan Project dan Logstore yang sesuai dengan log API Gateway Anda, misalnya ali-apigateway-log-cn-beijing dan gateway_request_log. Atur Dedicated SQL menjadi Disabled. Atur Time Range menjadi 15 Minutes (Relative).
Atasi kehabisan kolam koneksi outbound
-
Lakukan upgrade instans API Gateway.
-
Jika Anda menggunakan instans serverless, pertama-tama beli instans khusus, lalu migrasikan grup API ke instans khusus tersebut. Untuk informasi selengkapnya, lihat Migrasikan grup API antar instans.
Jika instans tersebut merupakan instans khusus, Anda dapat meningkatkan spesifikasi instans melalui Konsol API Gateway. Untuk informasi selengkapnya, lihat Ubah spesifikasi instans.
-
Periksa waktu respons yang dibutuhkan oleh layanan backend. Metrik ini (satuan: ms) dicatat dalam bidang serviceLatency pada log dan mengacu pada selisih waktu antara saat API Gateway mengirim permintaan ke layanan backend hingga saat API Gateway menerima paket terakhir dari respons layanan backend. Respons yang lambat berkontribusi terhadap kekurangan sumber daya koneksi outbound. Oleh karena itu, kami menyarankan agar Anda juga mengonfigurasi aturan peringatan untuk nilai serviceLatency. Jika nilai serviceLatency tetap tinggi, kemungkinan terjadi kekurangan sumber daya koneksi akan meningkat. Dalam kasus ini, Anda dapat mengoptimalkan respons backend untuk mencegah masalah tersebut.