All Products
Search
Document Center

Microservices Engine:Konfigurasikan kebijakan retry

Last Updated:Mar 12, 2026

Kegagalan sementara—seperti gangguan jaringan sesaat, overload layanan sementara, atau reset koneksi—dapat menyebabkan permintaan individual gagal meskipun layanan backend dalam kondisi sehat. Kebijakan retry pada gateway cloud-native Anda secara otomatis mengirim ulang permintaan yang gagal sehingga aplikasi dapat pulih tanpa perubahan di sisi klien. Konfigurasikan kebijakan retry pada tingkat entri rute di Microservices Engine (MSE).

Penting

Retry meningkatkan jumlah total permintaan ke layanan backend. Tetapkan batas retry secara konservatif (0, 1, atau 2) untuk menghindari membebani layanan yang sudah terdegradasi.

Cara kerja

Saat sebuah permintaan memenuhi kondisi retry, gateway mengirim ulang permintaan tersebut hingga mencapai jumlah maksimum yang dikonfigurasi.

Perilaku default (tanpa kebijakan kustom): Gateway melakukan retry terhadap permintaan yang gagal hingga 2 kali menggunakan kondisi berikut: connect-failure, refused-stream, unavailable, cancelled, dan retriable-status-codes. Perilaku default ini tetap berlaku bahkan ketika kebijakan retry kustom dinonaktifkan.

Penting

Menonaktifkan kebijakan retry kustom tidak menghentikan semua retry. Gateway akan kembali ke perilaku default yang dijelaskan di atas. Untuk menghentikan retry sepenuhnya, aktifkan kebijakan kustom dan atur Retry Times menjadi 0.

Kondisi retry

Gateway mendukung kondisi retry terpisah untuk traffic HTTP dan gRPC.

Kondisi retry HTTP

ConditionTriggers a retry when...
5xxBackend mengembalikan kode status 5xx apa pun, atau terjadi disconnect, reset, atau read timeout. Ini merupakan superset yang mencakup connect-failure dan refused-stream.
resetTerjadi disconnect, reset, atau read timeout (tidak ada respons dari backend).
connect-failurePermintaan gagal karena disconnection.
refused-streamBackend mengembalikan kode kesalahan REFUSED_STREAM.
retriable-status-codesBackend mengembalikan salah satu kode status yang ditentukan di Retry Status Code.
Catatan

Tentukan kode status di Retry Status Code hanya ketika retriable-status-codes dipilih sebagai kondisi retry.

Kondisi retry gRPC

ConditiongRPC status codeTypical cause
cancelledCANCELLED (1)Pemanggil membatalkan operasi.
deadline-exceededDEADLINE_EXCEEDED (4)Operasi mengalami timeout.
internalINTERNAL (13)Terjadi kesalahan internal server.
resource-exhaustedRESOURCE_EXHAUSTED (8)Batas resource tercapai (misalnya, rate limiting).
unavailableUNAVAILABLE (14)Layanan sementara tidak tersedia.

Kondisi yang direkomendasikan berdasarkan jenis traffic

Traffic typeRecommended conditionsUse case
HTTP5xxRetry tujuan umum untuk kesalahan server dan masalah koneksi. Mencakup connect-failure dan refused-stream.
HTTPconnect-failure, refused-streamRetry hanya pada kegagalan tingkat koneksi, bukan pada respons 5xx.
HTTPretriable-status-codesRetry pada kode status tertentu seperti 429 (rate limited) atau 503 (service unavailable).
gRPCcancelled, unavailablePasangan retry standar untuk layanan gRPC.

Prasyarat

Sebelum memulai, pastikan Anda telah:

  • Gateway cloud-native yang dibangun di MSE

  • Mengonfigurasi setidaknya satu entri rute pada gateway

Konfigurasikan kebijakan retry

  1. Masuk ke Konsol MSE. Di bilah navigasi atas, pilih wilayah.

  2. Di panel navigasi kiri, pilih Cloud-native Gateway > Gateways. Klik nama gateway tersebut.

  3. Di panel navigasi kiri, klik Routes, lalu klik tab Routes.

  4. Temukan entri rute yang ingin diubah, lalu klik Policies di kolom Actions.

  5. Klik tab Retry.

  6. Konfigurasikan parameter berikut, lalu klik OK.

    ParameterDescription
    Retry TimesJumlah maksimum upaya retry. Nilai valid: 0 hingga 10. Direkomendasikan: 0, 1, atau 2. Nilai 0 menonaktifkan retry sepenuhnya.
    Retry ConditionSatu atau beberapa kondisi yang memicu retry. Lihat Kondisi retry.
    Retry Status CodeSatu atau beberapa kode status HTTP yang memicu retry. Hanya berlaku ketika retriable-status-codes dipilih untuk Retry Condition.
    EnableAktifkan sakelar untuk menerapkan kebijakan retry. Nonaktifkan sakelar untuk menonaktifkannya.

Verifikasi kebijakan retry

Setelah Anda mengaktifkan kebijakan retry, verifikasi bahwa kebijakan tersebut berfungsi sesuai harapan:

  1. Simulasikan kegagalan backend yang sesuai dengan kondisi retry yang dikonfigurasi (misalnya, kembalikan respons 503 atau putuskan koneksi).

  2. Kirim permintaan melalui gateway ke entri rute yang terpengaruh.

  3. Periksa log akses backend untuk memastikan gateway melakukan retry permintaan sejumlah kali yang diharapkan.

Idempotensi dan retry storms

Idempotensi: Aktifkan retry hanya untuk operasi idempoten—permintaan yang menghasilkan hasil yang sama meskipun diulang. Melakukan retry pada operasi non-idempoten seperti pengiriman pembayaran dapat menyebabkan efek samping duplikat.

Retry storms: Dalam skenario lalu lintas tinggi, pengaturan retry yang agresif dapat memperparah beban pada layanan backend yang terdegradasi. Gabungkan kebijakan retry dengan kebijakan Pemutus sirkuit atau Pembatasan laju untuk melindungi layanan backend.

Operasi terkait