URI, URL Param ve HDR algoritmaları ne işe yarar; hangi senaryoda kullanılır?
Kısa cevap
URI, URL Param ve HDR, HTTP vService'te sunucuyu isteğin bir parçasının hash'iyle seçen self-persistent algoritmalardır: URI istek yolunu, URL Param belirtilen bir URL parametresini, HDR belirtilen bir HTTP header'ını kullanır. Aynı değer hep aynı sunucuya gider; önbellek verimini artırmak ya da kullanıcı veya kiracı bazında kalıcılık sağlamak için kullanılır. Değer istekte yoksa istek sunuculara sırayla dağıtılır.
Algoritmalar
| Algoritma | Hash'lenen değer | Ek alan | Tipik senaryo |
|---|---|---|---|
| URI | İstek yolu (? karakterinden önceki kısım) | URI Character Length (zorunlu, 1–10000) · URI Depth (isteğe bağlı, 1–100) | Önbellek ya da proxy sunucularında aynı içeriği aynı sunucuda tutmak |
| URL Param | Belirtilen URL parametresinin değeri | URL Parameter to Use (zorunlu) · Check Post Parameters (varsayılan kapalı) | ?user_id=, ?tenant= gibi kimliğe göre kalıcılık |
| HDR | Belirtilen HTTP header'ının değeri | HDR Name (zorunlu) | API anahtarı, X-Tenant-ID gibi header'a göre kalıcılık |
Üçü de yalnızca HTTP vService'te bulunur; algoritmaya özgü ek alanlar formda algoritma seçilince açılır. Aynı kutuda Hash Consistency anahtarı da görünür (varsayılan kapalı).
Nasıl Çalışır?
- URI: URI Character Length yolun baştan kaç karakterinin, URI Depth ise kaç
/seviyesinin hash'e katılacağını belirler; ikisi birlikte verilirse önce ulaşılan sınır geçerlidir. - URL Param: Parametre sorgu dizesinde aranır; Check Post Parameters açıksa parametre sorgu dizesinde yoksa POST gövdesinde de aranır.
- HDR: Header adı büyük/küçük harfe duyarlı değildir.
- Değer yoksa: Parametre ya da header istekte bulunmazsa istek sunuculara sırayla dağıtılır; bu isteklerde kalıcılık olmaz.
- Weight: Hash sonucu çalışan sunucuların toplam Weight'ine göre eşlenir; Weight değerleri dağılıma yansır.
- Sunucu sayısı değişirse: Değerlerin çoğu başka sunucuya kayar. Hash Consistency açıksa yalnızca küçük bir kısmı yer değiştirir ve hiçbir sunucu ortalama yükün 1,5 katından fazlasını almaz (Hash tabanlı algoritmalardaki Hash Consistency seçeneği ne işe yarar?).
TR7'de
- Seçim: vService → Details → LB Algorithm → Algorithm → URI, URL Param ya da HDR (Self-persistent).
- WEB-CLI: Değerler
urilen,urlparamvehdr'dir; ek alanlar--uriLen,--uriDepth,--urlParamKey,--checkPostve--hdrNameile yazılır (dağıtım algoritması). - İzleme: vService'in Load Balancer Management ekranında algoritma, ek alanları ve algoritmanın istemciyi kendiliğinden bir sunucuya sabitlediği yazar.
Sık Karıştırılan Noktalar
- "Bu algoritmalarla birlikte cookie persistence ya da SAM açarım." Self-persistent algoritma seçilince Persistence alanı gizlenir.
- "URL Param her isteği aynı sunucuda tutar." Parametre olmayan istekler sırayla dağıtılır.
- "Hash eşit dağıtır." Az sayıda farklı değer varsa (ör. birkaç kiracı) sunuculardan bazıları boş kalabilir.
- "Sunucu eklenince herkes aynı sunucuda kalır." Hash consistency kapalıyken çalışan sunucu sayısı değişince değerlerin çoğu başka sunucuya kayar.
Dokümantasyonda nasıl yapılır
