İçeriğe geç
Gobetween

Gobetween, Go ile yazılmış hafif bir L4 yük dengeleyicidir. HTTP içeriğini yorumlamadan bağlantıları backend’ler arasında dağıtması, TCP/UDP tabanlı servislerde sade ve düşük ek yükle çalışan bir trafik katmanı kurmayı sağlar.

Mono’da kullanım alanları

  • Veritabanı / kuyruk arkadaki yük dengeleme
  • L4 trafiği için minimal yapı
  • Health-check tabanlı dinamik yönlendirme

Üretim tasarımı

Backend listesi, health check aralıkları, bağlantı timeout’ları ve gözlemlenecek metrikler tanımlı olmalıdır. Gobetween’i bir web uygulamasının tüm güvenlik ve yönlendirme sorumluluğunu üstlenen tek araç olarak değil, ihtiyaca uygun protokol katmanı olarak konumlandırmak daha sağlıklıdır.

L4 yük dengeleme, uygulama farkındalığının yerine geçmez

Gobetween’in yönlendirdiği bir TCP bağlantısının açılması, backend’in doğru rolü üstlendiğini göstermez. Örneğin bir veritabanı replikası bağlantı kabul edebilir fakat yazma işlemlerine uygun olmayabilir. Bütün node’ları aynı havuza koymak, yazma trafiğini yanlış sunucuya gönderebilir. Rol farkındalığı olan bir sağlık kontrolü veya veritabanına özel bağlantı katmanı ayrıca tasarlanmalıdır.

Benzer şekilde mesaj kuyruğu servisleri çoğu zaman kendi küme ve istemci keşif mekanizmalarına sahiptir. Önlerine yük dengeleyici eklemek otomatik olarak daha güvenilir bir mimari oluşturmaz. İstemcinin yeniden bağlanma davranışı, protokolün oturum özellikleri ve backend’in desteklediği topoloji incelenmelidir.

Gobetween, HAProxy ve API gateway farkları

BeklentiUygun yaklaşım
Sade TCP/UDP bağlantı dağıtımıGobetween’in protokol ve keşif desteği değerlendirilir.
HTTP başlığına veya URL’ye göre kararHAProxy, Nginx veya başka bir L7 proxy gerekir.
API tüketicisi, kimlik ve kota yönetimiKong gibi bir API gateway daha uygun olabilir.
Küme rollerine göre veritabanı yönlendirmeProtokole ve veritabanına özgü sağlık/rol kontrolü gerekir.

Küçük bir binary ile dağıtım kolaylığı, toplam işletim maliyetinin yalnızca bir parçasıdır. Sürüm bakımı, güvenlik güncellemeleri, ekibin hata ayıklama deneyimi ve ihtiyaç duyulan entegrasyonlar değerlendirmeye dahil edilmelidir. Yeni kurulum kararı verilirken projenin güncel bakım durumu ve kullanılan sürümün destek olanakları kontrol edilir.

UDP ve TLS için ayrı test senaryoları

UDP bağlantısız bir protokoldür. Sanal oturum eşlemesinin süresi, paketlerin farklı backend’lere yönlenmesi ve kaynak IP’nin nasıl taşındığı uygulamanın beklentileriyle uyumlu olmalıdır. TCP için başarılı olan bir failover testi, UDP iş yükünün de doğru çalıştığını kanıtlamaz.

TLS sonlandırmada sertifika, özel anahtar erişimi ve backend bağlantısının yeniden şifrelenmesi açıkça belirlenir. TLS passthrough ise şifreli trafiği backend’e ulaştırır; HTTP içeriğine göre karar verme imkânını sınırlar. İstemci IP’si için PROXY protocol kullanılıyorsa iki tarafın da bu biçimi desteklemesi gerekir.

Mono’nun devreye alma ölçütleri

Yük testi; bağlantı kurma hızı, eşzamanlı bağlantı sayısı, backend hatası ve uzun bağlantıların kesilmesini kapsar. DNS değişikliğinin mevcut bağlantıları taşımayacağı özellikle hesaba katılır. Yönetim API’si internete açılmadan, konfigürasyon sürümleri ve erişim yetkileri tanımlanır. Amaç az bileşenli bir kurulumun gözlemlenebilirlik ve güvenlikten ödün vermemesidir.

İlgili hizmetlerimiz

Sıkça sorulan sorular

Gobetween hangi trafik türlerini dengeler?
Gobetween, kullanım senaryosuna göre TCP, UDP ve TLS trafiğini L4 seviyesinde dağıtabilir. HTTP uygulama kuralları, header yönlendirme veya gelişmiş API politikaları gerekiyorsa L7 bir proxy ayrıca değerlendirilmelidir.
Gobetween ne zaman tercih edilir?
Düşük kaynak tüketimi, sade kurulum ve protokol bağımsız backend dağıtımı öncelikliyse iyi bir adaydır. Kurumsal ACL, ayrıntılı HTTP health check veya kapsamlı API gateway ihtiyacında HAProxy, Nginx ya da Kong daha uygun olabilir.
Gobetween yüksek erişilebilir çalışır mı?
İki instance, sanal IP veya uygun DNS yönlendirmesi ve backend health check ile yüksek erişilebilir bir tasarım kurulabilir. Failover süresi, bağlantıların yeniden kurulma davranışı ve UDP akışları ayrıca test edilmelidir.

Bir sonraki dönüşümü birlikte planlayalım.

Ekibimiz teknik gereksinimlerinizi anlamak ve hızlıca prototip çıkarmak için hazır.