Anda sedang melihat dokumentasi Apigee dan Apigee hybrid.
Tidak ada padanan
Dokumentasi Apigee Edge untuk topik ini.
Gejala
Masalah ini muncul sebagai error Gateway Timeout
dengan status HTTP 504
.
Pesan Error
Anda mungkin melihat {i>error<i} 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 pesan error ini:
{"fault":{"faultstring":"Gateway Timeout", "detail":{"errorcode":"messaging.adaptors.http.flow.GatewayTimeout", "reason":"TARGET_READ_TIMEOUT"}}}
Kemungkinan Penyebab
Penyebab | Deskripsi | Petunjuk pemecahan masalah berlaku untuk |
---|---|---|
Target lambat | Target tidak menghasilkan respons tepat waktu. | Apigee X dan Apigee Hybrid |
Masalah konektivitas TargetServer | Ada masalah konektivitas umum
dengan target ketika
<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.
- Dalam sesi debug, kirim permintaan dan periksa output debug.
Seperti yang terlihat pada contoh di atas, Permintaan Target melebihi 55 detik, yang merupakan bawaan waktu tunggu target batas tersebut. Batas waktu dapat dikonfigurasi, dan jika Anda telah mengubah waktu tunggu, durasinya Permintaan Target akan sesuai dengan waktu tunggu yang telah Anda tetapkan. Misalnya, jika waktu tunggu Anda adalah 10 detik, maka dalam skenario tersebut, permintaan target akan habis waktu tunggunya setelah 10 detik. "Target lambat" tersebut adalah perilaku yang jelas indikasi bahwa target tidak merespons permintaan tepat waktu.
Resolusi
Apigee merekomendasikan agar Anda menghindari penggunaan target lambat. Misalnya, jika latensi target normal adalah 50 milidetik, dan Anda mengalami latensi 55.000 milidetik, Anda mungkin perlu menyelidikinya jika ada masalah dengan target.
Jika Anda harus meningkatkan 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.millis
di bagian<HTTPTargetConnection>
dan menentukan 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>
Pada contoh di atas, waktu tunggu ditingkatkan menjadi 120 detik. Perhatikan bahwa 300 detik adalah batas maksimum. Untuk informasi selengkapnya, lihat Endpoint referensi properti.
- Simpan revisi baru dan deploy proxy.
Jika masalah berlanjut, buka Harus mengumpulkan informasi diagnostik di bawah.
Penyebab: Masalah konektivitas TargetServer
Diagnosis
Apigee tidak mengungkapkan penyebab pasti masalah konektivitas saat Anda mengonfigurasi
<LoadBalancer>
properti endpoint. Anda mungkin dapat menyimpulkan penyebab
masalah konektivitas, namun,
dari waktu berlalu Permintaan Target. Sebagai metode {i>debugging<i}, 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.
- Dalam sesi debug, kirim permintaan dan periksa output debug.
Dalam contoh di atas, diperlukan waktu sembilan detik hingga waktu tunggu terjadi. Karena bukan 55 detik,
Anda tahu penyebab error bukan karena batas waktu tunggu terlampaui karena target yang lambat.
Secara default, Apigee mencoba kembali koneksi dua kali lagi jika elemen <LoadBalancer>
digunakan di TargetEndpoint. Karena Anda mengetahui bahwa koneksi telah dicoba tiga kali
secara total, dan waktu tunggu default untuk error koneksi adalah tiga detik
(connect.timeout.millis),
Anda dapat berasumsi bahwa masalahnya
adalah masalah konektivitas.
Resolusi
Jika masalah tersebut terkonfirmasi sebagai waktu tunggu koneksi habis, lihat Error Layanan Peering VPC 503 Tidak Tersedia dengan TARGET_CONNECT_TIMEOUT.
Untuk masalah lainnya, hapus <LoadBalancer>
untuk men-debug dan mengungkapkan
kode error, dan periksa kode di
katalog error.
Harus Mengumpulkan Informasi Diagnostik
Jika masalah berlanjut bahkan setelah mengikuti instruksi di atas, kumpulkan informasi diagnostik, lalu hubungi Google Dukungan Cloud:
- Project ID dan nama organisasi Apigee
- Nama proxy dan lingkungan.
- Jangka waktu masalah.
- Frekuensi masalah
- Nama host target.
- Sesi debug yang bermasalah.