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 mengharapkan respons terhadap permintaan ini diterima secara tepat waktu.

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

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

Dokumen ini menjelaskan praktik terbaik untuk mengonfigurasi waktu tunggu I/O di berbagai komponen tempat permintaan API mengalir 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.
  • Antara 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 selalu konfigurasikan (ubah) 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 bukan semua Proxy API yang ditayangkan oleh Router.

    Konfigurasikan (ubah) 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: Sebaiknya selalu konfigurasikan (ubah) nilai waktu tunggu I/O untuk proxy API tertentu, bukan mengonfigurasinya di Pemroses Pesan. Tindakan ini memastikan bahwa nilai waktu tunggu baru hanya memengaruhi proxy API tertentu, bukan semua proxy API yang ditayangkan oleh Message Processor.

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

Contoh skenario

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 jika 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 yang dimulai dari Klien yang menuju ke Router, lalu ke Message Processor, lalu ke Server Backend

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

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

    Mengonfigurasi waktu tunggu di klien, lalu Router, lalu Message Processor, lalu Backend Server

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

    Konfigurasikan waktu tunggu di klien pada 60 detik, lalu Router pada 57 detik, lalu Message Processor pada 55 detik, lalu Backend Server 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 dengan 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 yang dimulai dari Klien yang menuju ke Komponen Perantara 1, lalu ke Router, lalu ke Pemroses Pesan, lalu ke Komponen Perantara 2, lalu ke Server Backend

Jika Apigee Edge disiapkan seperti yang ditunjukkan pada 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 di klien.
  2. Server backend adalah komponen terakhir dalam alur. Nilai waktu tunggu terendah harus ditetapkan di server backend.
  3. Konfigurasikan nilai waktu tunggu di setiap komponen, termasuk komponen perantara, dalam urutan berikut:

    Konfigurasikan waktu tunggu di klien, lalu Komponen Perantara 1, lalu Router, lalu Pemroses Pesan, lalu Komponen Perantara 2, lalu Server Backend

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

    Konfigurasikan waktu tunggu di klien pada 63 detik, lalu Komponen Perantara 1 pada 60 detik, lalu Router pada 57 detik, lalu Pemroses Pesan pada 55 detik, lalu Komponen Perantara 2 pada 52 detik, lalu Server Backend pada 59 detik