Praktik terbaik untuk mengonfigurasi waktu tunggu I/O

Anda sedang melihat dokumentasi Apigee Edge.
Buka dokumentasi Apigee X.
info

Permintaan API yang dibuat oleh aplikasi klien mengalir melalui berbagai komponen di Apigee Edge sebelum mencapai layanan backend. Sebagian besar aplikasi klien berharap agar respons terhadap permintaan ini diterima secara tepat waktu.

Untuk mendapatkan respons yang tepat waktu, nilai waktu tunggu I/O ditetapkan di setiap komponen yang dilalui permintaan API. Jika salah satu komponen dalam alur memerlukan waktu yang lebih lama daripada komponen sebelumnya, komponen sebelumnya akan kehabisan waktu dan merespons kembali dengan error Waktu Tunggu Gateway 504.

Saat mengonfigurasi waktu tunggu, nilai harus dikonfigurasi di setiap komponen dengan sangat hati-hati. Jika tidak, hal ini dapat menyebabkan error Waktu Tunggu Gateway 504.

Dokumen ini menjelaskan praktik terbaik untuk mengonfigurasi waktu tunggu I/O pada berbagai komponen yang digunakan untuk mengalirkan permintaan API di Apigee Edge.

Praktik terbaik untuk mengonfigurasi waktu tunggu I/O

Pertimbangkan praktik terbaik berikut saat mengonfigurasi waktu tunggu I/O:

  • Komponen pertama: Selalu gunakan waktu tunggu tertinggi pada komponen pertama dalam alur permintaan API, yaitu Aplikasi Klien di Apigee Edge.
  • Komponen terakhir: Selalu gunakan waktu tunggu terendah pada komponen terakhir dalam alur permintaan API, yaitu Layanan Backend di Apigee Edge.
  • Antar komponen: Pastikan ada perbedaan setidaknya 2-3 detik dalam nilai waktu tunggu yang dikonfigurasi di setiap komponen antara komponen pertama dan komponen terakhir dalam alur.
  • Router: Sebaiknya Anda mengonfigurasi (mengubah) nilai waktu tunggu I/O untuk host virtual tertentu, bukan mengonfigurasinya di Router. Hal ini memastikan bahwa nilai waktu tunggu baru hanya memengaruhi Proxy API yang menggunakan host virtual tertentu dan tidak semua Proxy API yang ditayangkan oleh Router.

    Konfigurasikan (mengubah) waktu tunggu I/O di Router hanya jika Anda benar-benar yakin bahwa nilai waktu tunggu I/O baru diperlukan atau berlaku untuk semua Proxy API yang berjalan di Router.

  • Pemroses Pesan: Biasanya, mengonfigurasi (mengubah) nilai waktu tunggu I/O untuk proxy API tertentu, bukan mengonfigurasinya pada Pemroses Pesan. Hal ini memastikan bahwa nilai waktu tunggu yang baru hanya memengaruhi proxy API tertentu dan tidak semua proxy API yang disalurkan oleh Pemroses Pesan.

    Konfigurasikan (mengubah) waktu tunggu I/O pada Pemroses Pesan hanya ketika Anda benar-benar yakin bahwa nilai waktu tunggu I/O yang baru diperlukan atau berlaku untuk semua Proxy API yang berjalan pada Pemroses Pesan.

Skenario contoh

Skenario di bagian ini dapat membantu Anda memahami cara menetapkan nilai waktu tunggu I/O dengan benar.

Skenario 1: Permintaan ke Apigee Edge dari aplikasi klien secara langsung

Bagian ini menjelaskan praktik terbaik yang harus diikuti saat menyiapkan nilai waktu tunggu dalam penyiapan Apigee Edge ketika tidak ada komponen perantara antara aplikasi klien dan Apigee Edge serta antara Apigee Edge dan server backend Anda.

Contoh penyiapan Apigee tanpa komponen perantara

Alur dimulai pada Klien yang menuju ke Router, lalu ke Prosesor Pesan, lalu ke Server Backend

Jika Apigee Edge disiapkan seperti yang ditunjukkan dalam diagram di atas, tanpa komponen perantara, gunakan praktik terbaik berikut:

  1. Aplikasi klien adalah komponen pertama dalam alur. Nilai waktu tunggu tertinggi harus ditetapkan pada klien.
  2. Server backend adalah komponen terakhir dalam alur. Nilai waktu tunggu terendah harus ditetapkan di server backend.
  3. Konfigurasikan nilai waktu tunggu pada setiap komponen dengan urutan berikut:

    Konfigurasi waktu tunggu pada klien, lalu Router, Prosesor Pesan, lalu Server Backend

    Contoh berikut menunjukkan nilai waktu tunggu yang disetel pada berbagai komponen sesuai panduan yang diberikan di atas untuk menghindari masalah:

    Konfigurasi waktu tunggu pada klien pada 60 detik, kemudian Router pada 57 detik, kemudian Prosesor Pesan pada 55 detik, kemudian Server Backend pada 52 detik

Skenario 2: Permintaan ke Apigee Edge dari aplikasi klien melalui komponen perantara

Bagian ini menjelaskan praktik terbaik yang harus diikuti saat menyiapkan nilai waktu tunggu dalam penyiapan Apigee Edge ketika ada satu atau beberapa komponen perantara antara aplikasi klien dan Apigee Edge serta antara Apigee Edge dan server backend Anda.

Komponen perantara dapat berupa load balancer, jaringan penayangan konten (CDN), NGINX, dan sebagainya.

Contoh penyiapan Apigee dengan satu komponen perantara antara Klien dan Apigee Edge serta antara Apigee Edge dan server backend

Alur dimulai pada Klien menuju Komponen Menengah 1, kemudian ke Router dan kemudian ke Prosesor Pesan, lalu ke Komponen Menengah 2 dan kemudian ke Server Backend

Jika Apigee Edge disiapkan seperti yang ditunjukkan dalam diagram di atas, dengan satu atau beberapa komponen perantara, gunakan praktik terbaik berikut:

  1. Aplikasi klien adalah komponen pertama dalam alur. Nilai waktu tunggu tertinggi harus ditetapkan pada klien.
  2. Server backend adalah komponen terakhir dalam alur. Nilai timeout terendah harus ditetapkan di server backend.
  3. Konfigurasikan nilai waktu tunggu pada setiap komponen, termasuk komponen perantara, dalam urutan berikut:

    Konfigurasi waktu tunggu pada klien, lalu Komponen Menengah 1, Router, Prosesor Pesan, Komponen Menengah 2, lalu Server Backend

    Contoh berikut menunjukkan nilai waktu tunggu yang disetel pada berbagai komponen sesuai panduan yang diberikan di atas untuk menghindari masalah:

    Konfigurasi waktu tunggu pada klien pada 63 detik, lalu Komponen Menengah 1 pada 60 detik, kemudian Router pada 57 detik, lalu Proses Proses Pesan st 55 detik, lalu Komponen Menengah 2 pada 52 detik, kemudian Server Backend pada 59 detik