COMPUTER ENGINEER

Örneklere git
Blog
HTTP / HTTPS / TLS6 dk çalışma
58/ 70

Dayanıklılık ve hata yönetimi

Timeout, retry ve idempotency key

Yanıt gelmedi diye işlem olmadı sanma.

AnlaÖrneği inceleKendin uygula

Kavramı anlayalım

Client timeout bağlantıyı bırakabilir ama sunucudaki işlem zaten commit edilmiş olabilir. DNS/connect/TLS/response timeout ve toplam deadline farklı kapsamlar taşır. Yeni denemelerin aynı toplam bütçeyi aşmasına izin verme. İptal sinyali server ve DB’ye iletilse bile rollback sonucu garanti edilmez; akışın sözleşmesi önemlidir.

Idempotency key uygulamanın tekrar POST’ları aynı operasyonla ilişkilendirmesini sağlayan tasarımdır; bütün sunucularda otomatik tanımlı sihirli davranış değildir. Key kapsamı, body fingerprint, expiry, concurrent request ve saklanan sonuç politikası belirlenmelidir. Aynı key farklı body ile gelirse çatışma kabul edilmelidir.

GET’i retry etmek genellikle daha uygun olsa da genel retry her hata için doğru değildir. 400/403 gibi kalıcı sorunlara bekleyip tekrar göndermek çözüm olmaz. İş kimliğiyle durum sorgulama belirsiz sonucu çözebilir.

NERESİNDE KULLANIRSIN?

Duplicate ödeme, başvuru ve mesaj oluşmasını önlemek için.

SIK YAPILAN HATA

Timeout olduğunda aynı POST’u yeni kimlikle tekrar göndermek.

01 / UYGULAMA

Aynı konu. Üç farklı derinlik.

HTTP / temsili örnek
Client timeout → outcome unknown

Server sonucu ayrıca doğrulanmalıdır.

Bu sayfa dış sunuculara istek göndermez. HTTP mesajları temsili, HTTP/1.1 biçiminde okunabilir gösterimlerdir; HTTP/2 ve HTTP/3 wire formatı değildir. example.test ayrılmış öğretim alan adıdır. Komut ve JavaScript örneklerini yalnız kendi test ortamında uygula; gerçek token veya cookie yayımlama.

02 / SIRA SENDE

Önce kendin dene.

Timeout işlem başarısız oldu anlamına mı gelir?

Çözümü ve açıklamasını göster
Açıklamalı çözüm
Timeout = unknown outcome until reconciled

Her zaman değil; sonuç belirsiz olabilir.