Backend yanıt süresine veya yanıt durum koduna göre karar verebilir miyim?
Kısa cevap
Evet, iki ayrı düzeyde. Sunucu seçimi yanıt süresine göre yapılabilir; bunun için vService'in LB Algorithm alanında Least Response Time, Fastest ya da Fastest+ seçilir. Status Code ve Server Response Time koşulları ise yanıt geldikten sonra değerlendirilir; yalnızca On Response aksiyonlarında kullanılır ve yanıta başlık eklemek, içeriği değiştirmek ya da logu susturmak gibi işler yapar, aynı isteği başka bir Kurum Servisine gönderemez. Hata kodlarına göre özel sayfa ya da yönlendirme için Show Content for Backend Service Errors ve Redirect for Backend Service Errors aksiyonları kullanılır.
Nasıl Çalışır?
- İstek gelir; Conditional Backend Services (Content Switching) blokları ve LB algorithm, isteği hangi Kurum Servisinin karşılayacağını bu aşamada seçer.
- Kurum Servisi yanıt verir; durum kodu ve yanıt süresi ancak bu noktada bilinir.
- Yanıt aşamasında çalışan aksiyonlar (On Response) Status code ve Server Response Time koşullarına göre yanıtı işler ve istemciye iletir.
Sunucu seçimi yanıttan önce yapıldığı için Conditional Backend Services bloklarında yalnızca istek aşamasındaki koşullar listelenir; Status code ve Server Response Time bu listede yer almaz.
TR7'de Hangi Karar Nerede Verilir?
| Amaç | TR7'de | Not |
|---|---|---|
| En hızlı yanıt veren sunucuyu seçmek | Least Response Time (Time metric: Total time ya da Response time) · Fastest / Fastest+ | vService → LB algorithm; istek aşamasında, ölçülen geçmiş sürelere göre |
| Yavaş yanıtı işaretlemek | Server Response Time koşulu + Add HTTP Header ya da Set HTTP Header (On Response) | Yanıt aşamasında; değer milisaniye cinsinden girilir |
| Belirli durum kodlu yanıtın içeriğini değiştirmek | Status Code koşulu + Modify Response Content | Yanıt aşamasında |
| Belirli yanıtları log dışı bırakmak | Status code / Server Response Time koşulu + Conditional Silent Log (On Response) | Yanıt aşamasında |
| Kurum Servisinin döndürdüğü hata kodunda özel sayfa göstermek | Show Content for Backend Service Errors | Koşul almaz; Error codes listesiyle çalışır |
| Kurum Servisinin döndürdüğü hata kodunda başka adrese yönlendirmek | Redirect for Backend Service Errors | Koşul almaz; Error codes listesiyle çalışır |
| TR7'nin ürettiği hata kodlarında (ör. Kurum Servisine ulaşılamadığında 503, zaman aşımında 504) sayfa ya da yönlendirme | Show Content for Traffic Manager Errors · Redirect for Traffic Manager Errors | Koşul almaz |
Sık Karıştırılan Noktalar
- "Status code koşuluyla 5xx veren isteği başka sunucuya gönderirim." Yanıt aşamasındaki koşullar isteği yeniden yönlendirmez; sunucu seçimi istek aşamasında yapılır. Sağlıksız sunucuyu dağıtımdan çıkarmak için Kurum Servisine bir Health Check profili atanır.
- "Least Response Time her zaman yanıt süresine bakar." Time metric alanı varsayılan olarak Total time (kuyruk + bağlantı + yanıt) ölçer; yalnızca sunucunun yanıt süresi için Response time seçilir.
Dokümantasyonda nasıl yapılır
İlgili sorular
- On Request ve On Response action'ları arasındaki fark nedir?
- Conditional Backend Services ile Default Backend Services arasındaki fark nedir?
- Least Response Time ve Least Bandwidth nasıl çalışır; neden bazen Least Connection gibi davranıyor?
- Kurum Servisinden dönen yanıtın boyutuna göre işlem yapabilir miyim (Response Size (bytes))?
