Eski bağlantı modelinde çok sayıda istemci, kurum servisi tarafında aynı sayıda TCP veya TLS bağlantısına dönüşür. Her yeni bağlantı üç aşamalı TCP kurulumunu, TLS el sıkışmasını, socket yönetimini ve bağlantı kapatma maliyetini beraberinde getirir. Trafik büyüdükçe kurum servisleri gerçek uygulama işinden çok bağlantı kurma maliyetiyle yorulur.
Kısa ve sık API istekleri bu problemi daha da görünür hale getirir. Mobil uygulamalar, B2B çağrılar, mikroservisler ve checkout akışları çok sayıda küçük istek üretir. Her istek yeni bağlantıya dönüşürse CPU, bellek, socket ve ağ kaynakları gereksiz tüketilir.
Ön tarafta HTTP/1.1 davranışı da ayrı bir sınır oluşturur. Aynı bağlantıda yavaş bir istek diğerlerini bekletebilir; paralel akış kapasitesi sınırlı kalır. Modern istemci trafiği HTTP/2 ve HTTP/3 ile daha verimli taşınırken, kurum servisi tarafındaki bağlantı yönetimi de buna uyumlu olmalıdır.
Doğru yaklaşım, istemci bağlantı sayısını kurum servisi bağlantı sayısına bire bir yansıtmak yerine bağlantıları havuzlamak, yeniden kullanmak ve servis tipine göre çoğullama davranışını ayarlamaktır. İdempotent olmayan işlemlerde daha güvenli modlar, yüksek hacimli API'lerde daha agresif yeniden kullanım tercih edilmelidir.
TR7 Bağlantı Çoğullaması bu modeli sunar: ön tarafta modern akış çoğullaması, kurum servisi tarafında keepalive havuzu ve yönetilebilir bağlantı yeniden kullanım politikası sağlar.
TR7, bağlantı çoğullamasını kurum servisi keepalive havuzu, yeniden kullanım modu, HTTP/2/HTTP/3 protokol desteği ve TLS oturum yeniden kullanımıyla uygular.
Kurum servisine açılan bağlantılar istek tamamlandığında hemen kapatılmaz, yeniden kullanılmak üzere havuzda tutulabilir. Böylece kurum servisi tarafında TCP ve TLS el sıkışması yükü düşer.
Bağlantı yeniden kullanımı never, safe, aggressive ve always gibi modlarla yönetilebilir. Operatör güvenlik, idempotency ve performans ihtiyacına göre her servis için doğru davranışı seçer.
HTTP/2 ALPN ile bir bağlantı üzerinde birden fazla paralel stream taşınabilir. Bu, özellikle kısa ve çok sayıdaki API isteklerinde istemci tarafı bağlantı verimliliğini artırır.
TLS session resumption davranışı tekrar gelen istemcilerde tam el sıkışma maliyetini azaltabilir. Bu, TLS yoğunluğu yüksek servislerde CPU tüketimini ve bağlantı kurulum gecikmesini düşürür.
Bağlantı Çoğullaması, servis bazlı yeniden kullanım, keepalive, HTTP/2, HTTP/3 ve timeout profilleriyle kurum servisi bağlantı yükünü azaltır.
TR7, bağlantı yeniden kullanımını pool seviyesinde bir aksiyon olarak yönetebilir. never modu her istek için yeni bağlantı davranışına yakın çalışırken, safe modu daha kontrollü yeniden kullanım sağlar. aggressive ve always modları yüksek hacimli servislerde daha yoğun bağlantı tasarrufu hedefler. Operatör servis davranışına göre performans ve güvenlik dengesini seçer.
Kurum servisi tarafında keepalive davranışıyla bağlantılar istek sonrasında havuza dönebilir. Yeni istek geldiğinde hazır bağlantı tekrar kullanılır. Bu yaklaşım kısa isteklerde bağlantı kurulum maliyetini önemli ölçüde azaltır. Kurum servisleri daha az socket churn ve daha kararlı bağlantı davranışıyla çalışır.
TR7, istemci tarafında HTTP/2 ALPN desteğiyle bir bağlantı üzerinde birden fazla stream taşıyabilir. Bu, özellikle tarayıcı ve mobil istemcilerde bağlantı sayısını azaltır. Aynı zamanda gecikme ve kaynak tüketimi daha kontrollü hale gelir. HTTP/2 desteği, modern web ve API trafiği için temel performans katmanıdır.
Kurum servisi tarafında HTTP/2 desteği servis bazında açılabilir. Kurum servisi HTTP/2 destekliyorsa ALPN üzerinden h2/http1.1 pazarlığı yapılabilir. Desteklemeyen servislerde HTTP/1.1 davranışı korunur. Böylece modern servisler HTTP/2 avantajından yararlanırken legacy servisler kırılmadan çalışır.
TR7, ön tarafta HTTP/3/QUIC desteğiyle modern istemci trafiğini daha esnek taşıyabilir. Mobil ve kayıplı ağlarda bağlantı kurulum davranışı ve akış sürekliliği iyileşebilir. HTTP/2 fallback ile geriye dönük uyumluluk korunur. Kurum servisi tarafı ise mevcut protokol yapısına göre ayrı yönetilir.
Safe yeniden kullanım modu, riskli veya idempotent olmayan işlemlerde daha temkinli davranış sağlar. Bankacılık, ödeme veya işlem yazan API'lerde performans optimizasyonu veri bütünlüğünün önüne geçmemelidir. Bu mod, yeniden kullanımı daha güvenli sınırlar içinde tutar. Operatör yüksek güvenli servislerde agresif mod yerine safe davranışı seçebilir.
TLS oturum yeniden kullanımı, aynı istemcinin tekrar bağlantı kurarken tam handshake maliyetini azaltabilir. TLS 1.2 ve TLS 1.3 oturum yeniden kullanım davranışları, yoğun HTTPS trafiğinde ADC CPU kullanımını dengeler. Bu özellikle kısa ömürlü bağlantıların fazla olduğu mobil ve API senaryolarında değerlidir. Performans artışı trafik profiline göre değişir.
http keepalive, client-fin, server-fin, tunnel, connect, server, client ve queue timeout değerleri bağlantı havuzunun davranışını belirler. Çok kısa timeout havuzu boşaltır ve reuse oranını düşürür. Çok uzun timeout ise idle bağlantı ve bellek tüketimini artırabilir. TR7 bu dengeyi servis profiline göre yönetilebilir hale getirir.
Pool ve kurum servisi seviyesinde bağlantı limitleri tanımlanabilir. Bu limitler kurum servislerinin ani bağlantı patlaması altında korunmasına yardımcı olur. Özellikle daha küçük veya lisanslı bağlantı kapasitesi olan uygulamalarda önemlidir. Bağlantı çoğullaması, limitlerle birlikte çalıştığında daha öngörülebilir kapasite davranışı sağlar.
Saniye başına yeni bağlantı oranı üst sınırla kontrol edilebilir. Bu, bot dalgası, mobil reconnect fırtınası veya anlık trafik patlamasında kurum servislerinin ezilmesini önler. Hazır bağlantı havuzu yeniden kullanım sağlarken, yeni bağlantı oranı da ayrı sınırla yönetilir. Operasyon ekipleri bağlantı davranışını yalnızca toplam sayıyla değil hızla da sınırlar.
TCP keepalive davranışı istemci ve kurum servisi tarafında bağlantıların ara ağ cihazları tarafından gereksiz kapatılmasını azaltabilir. Uzun süre açık kalan bağlantılar firewall veya NAT timeout'larından etkilenebilir. Keepalive bu bağlantıların canlılığını korumaya yardımcı olur. Bu özellikle uzun oturumlu veya düşük frekanslı servislerde önemlidir.
Konfigürasyon değişikliklerinde mevcut bağlantılar drain edilirken yeni bağlantılar yeni worker tarafından kabul edilebilir. Bu davranış bağlantı havuzlarının ani kesintiye uğramasını önler. Operatör timeout, reuse veya ALPN ayarı değiştirirken servis sürekliliği korunur. Production değişiklikleri daha düşük riskle uygulanır.
Bağlantı çoğullaması; keepalive timeout dengesi, drain davranışı, TLS cache, stream eşzamanlılığı, protokol dönüşümü ve monitoring metrikleriyle birlikte işletilir.
Keepalive timeout çok kısa olursa bağlantılar havuzda kalmadan kapanır ve yeniden kullanım oranı düşer. Çok uzun olursa idle bağlantı sayısı artar ve bellek tüketimi yükselir. Değer, trafik yoğunluğu ve kurum servisi kapasitesine göre ayarlanmalıdır.
Soft reload davranışında eski bağlantılar kontrollü şekilde tamamlanırken yeni bağlantılar yeni konfigürasyonla kabul edilir. Bu, bağlantı çoğullaması kullanan servislerde kesintisiz değişiklik için önemlidir. Uzun yaşayan bağlantılar için drain süresi ayrıca planlanmalıdır.
TLS session cache boyutu yoğun HTTPS trafiğinde tekrar bağlantı kuran istemciler için önemlidir. Çok küçük cache resumption oranını düşürür. Çok büyük cache ise bellek planlamasında dikkate alınmalıdır.
TCP keepalive işletim sistemi seviyesinde bağlantının hâlâ canlı olduğunu ara katmanlara gösterebilir. NAT, firewall veya stateful güvenlik cihazlarının idle bağlantıyı erken kapatmasını azaltır. Bu ayar uzun süre açık kalan bağlantılarda değerlidir.
HTTP/2 tarafında tek bağlantı üzerindeki paralel stream sayısı sınırlandırılabilir. Çok düşük değer çoğullama faydasını azaltır; çok yüksek değer tek bağlantıda aşırı yük yaratabilir. Trafik tipine göre dengelenmelidir.
İstemci tarafı HTTP/2 iken kurum servisi HTTP/1.1 çalışıyorsa stream davranışı kurum servisi tarafında bire bir aynı paralelliğe dönüşmeyebilir. Bu durumda bazı istekler kurum servisi bağlantı modeline göre sıralanabilir. Kurum servisi HTTP/2 destekliyorsa ilgili toggle değerlendirilmelidir.
TLS kurum servisi tarafından değil TR7 tarafından sonlandırıldığında kurum servisi üzerindeki TLS handshake yükü azalır. Buna karşılık ADC üzerinde TLS işleme maliyeti oluşur. TLS oturum yeniden kullanımı ve bağlantı havuzu bu maliyeti dengelemeye yardımcı olur.
Request total, queue, connection count, reuse davranışı ve error metrikleri bağlantı havuzunun sağlığını gösterir. Reuse düşükse timeout veya servis davranışı gözden geçirilmelidir. Queue artıyorsa kurum servisi bağlantı kapasitesi veya maxconn limitleri incelenmelidir.
SaaS API'leri kısa ve yoğun istek üretir. Bağlantı çoğullaması kurum servisi tarafında bağlantı sayısını azaltır ve yeni TCP/TLS maliyetini düşürür.
Mobil istemciler sık bağlantı açıp kapatabilir. Keepalive, HTTP/2 ve TLS resumption ile kullanıcı tarafındaki tekrar bağlantı maliyeti azaltılabilir.
HTTP/2 destekleyen kurum servislerinde ALPN toggle açılarak stream çoğullaması değerlendirilebilir. Bu, servisler arası yoğun çağrılarda daha verimli bağlantı kullanımı sağlar.
Edge veya yoğun istemci trafiği origin kurum servisine sürekli yeni bağlantı açmak yerine havuzdaki bağlantıları kullanabilir. Origin CPU ve socket yükü azalır.
İdempotent olmayan finansal işlemlerde agresif yeniden kullanım yerine safe mode tercih edilebilir. Böylece performans artışı hedeflenirken işlem bütünlüğü korunur.
B2B servislerde az ama değerli çağrılar yoğun TLS maliyeti oluşturabilir. Bağlantı havuzu ve session resumption ile güvenli bağlantı kurulum yükü azaltılır.
Keepalive havuzu, http-reuse modu, HTTP/2, HTTP/3 ve TLS session resumption — tüm bağlantı optimizasyonu tek ADC politikasında. Kendi servislerinizle canlı bir kurulumda gezdirelim.