Anda sedang melihat dokumentasi Apigee dan Apigee Hybrid.
Tidak ada dokumentasi
Apigee Edge yang setara untuk topik ini.
Gejala
Masalah ini muncul sebagai error Gateway Timeout dengan status HTTP 504.
Pesan Error
Anda mungkin melihat error ini di Pemantauan API, Debug, atau alat lainnya. AlasanTARGET_READ_TIMEOUT menunjukkan bahwa runtime Apigee tidak menerima respons tepat waktu dari target selama eksekusi permintaan.
Nilai waktu tunggu baca target default (io.timeout.millis) adalah 55 detik. Artinya, jika setelah 55 detik target tidak merespons, Apigee akan menampilkan error ini:
{"fault":{"faultstring":"Gateway Timeout",
"detail":{"errorcode":"messaging.adaptors.http.flow.GatewayTimeout",
"reason":"TARGET_READ_TIMEOUT"}}}Kemungkinan Penyebab
| Penyebab | Deskripsi | Petunjuk pemecahan masalah yang berlaku untuk |
|---|---|---|
| Target lambat | Target tidak menghasilkan respons tepat waktu. | Apigee X dan Apigee Hybrid |
| Masalah konektivitas TargetServer | Ada masalah konektivitas umum dengan target saat
<LoadBalancer> dikonfigurasi
di TargetEndpoint.
|
Apigee X dan Apigee Hybrid |
Penyebab: Target Lambat
Diagnosis
Anda dapat mendiagnosis masalah target lambat menggunakan Alat Debug Apigee:
- Buat sesi debug untuk proxy API Anda.
- Di sesi debug, kirim permintaan dan periksa output debug.
Seperti yang dapat Anda lihat dalam contoh di atas, Permintaan Target melampaui 55 detik, yang merupakan batas waktu target default. Batas waktu dapat dikonfigurasi, dan jika Anda telah mengubah waktu tunggu, durasi Permintaan Target akan cocok dengan waktu tunggu yang Anda tetapkan. Misalnya, jika waktu tunggu Anda adalah 10 detik, maka dalam skenario tersebut, permintaan target akan mencapai waktu tunggu setelah 10 detik. Perilaku "target lambat" seperti itu merupakan indikasi yang jelas bahwa target tidak merespons permintaan tepat waktu.
Resolusi
Apigee merekomendasikan agar Anda menghindari penggunaan target lambat. Misalnya, jika latensi target normal adalah 50 md, dan Anda mengalami latensi 55.000 md, Anda mungkin perlu menyelidiki apakah ada masalah pada target.
Jika Anda harus memperpanjang waktu tunggu, ikuti langkah-langkah berikut:
- Klik tab Develop di editor proxy.
- Di panel navigasi, pilih endpoint target yang terpengaruh.
- Di editor XML, temukan elemen XML
HTTPTargetConnection:
- Tambahkan properti
io.timeout.millisdi bawah elemen<HTTPTargetConnection>dan tentukan batas waktu baru dalam milidetik, misalnya:<HTTPTargetConnection> <URL>https://my-very-slow-target.example.com</URL> <Properties> <Property name="io.timeout.millis">120000</Property> </Properties> </HTTPTargetConnection>Dalam contoh di atas, waktu tunggu ditingkatkan menjadi 120 detik. Perhatikan bahwa 300 detik adalah batas maksimum. Untuk mengetahui informasi lebih lanjut, lihat Referensi properti endpoint.
- Simpan revisi baru dan deploy proxy.
Jika masalah berlanjut, buka Informasi diagnostik yang harus dikumpulkan di bawah.
Penyebab: Masalah konektivitas TargetServer
Diagnosis
Apigee tidak mengungkapkan penyebab pasti masalah konektivitas saat Anda mengonfigurasi properti
endpoint <LoadBalancer>. Anda mungkin dapat menyimpulkan penyebab masalah konektivitas, namun,
dari waktu yang berlalu dari Permintaan Target. Sebagai metode pen-debug-an, Anda dapat mencoba menghapus
elemen <LoadBalancer> sepenuhnya, dan mencoba mencapai target secara langsung di proxy.
Untuk mendiagnosis masalah, gunakan Alat Debug.
- Buat sesi debug untuk proxy API Anda.
- Di sesi debug, kirim permintaan dan periksa output debug.
Pada contoh di atas, waktu tunggu habis setelah sembilan detik. Karena bukan 55 detik,
Anda tahu bahwa penyebab error bukan karena batas waktu terlampaui akibat target yang lambat.
Secara default, Apigee mencoba kembali koneksi dua kali lagi jika elemen <LoadBalancer>
digunakan di TargetEndpoint. Karena Anda tahu bahwa koneksi telah dicoba tiga kali
secara total, dan waktu tunggu default untuk error koneksi adalah tiga detik
(connect.timeout.millis),
Anda dapat mengasumsikan bahwa masalahnya adalah masalah konektivitas.
Resolusi
Jika masalahnya dikonfirmasi sebagai waktu tunggu koneksi, lihat Error VPC Peering 503 Service Unavailable dengan TARGET_CONNECT_TIMEOUT.
Untuk masalah lainnya, hapus elemen <LoadBalancer>
untuk men-debug dan menampilkan kode
error yang tepat, lalu periksa kode tersebut di
katalog error.
Harus Mengumpulkan Informasi Diagnostik
Jika masalah berlanjut bahkan setelah mengikuti petunjuk di atas, kumpulkan informasi diagnostik berikut, lalu hubungi Dukungan Cloud Google:
- Project ID dan nama organisasi Apigee
- Nama proxy dan lingkungan.
- Rentang waktu terjadinya masalah.
- Frekuensi masalah
- Nama host target.
- Sesi debug dengan masalah.