Sistem tasarımı, yazılım mühendisliğinin en önemli kavramlarından biridir. Ortak mimarlık kursuma başladığımda, bir sistemi nasıl tasarladığınızı anlamakta zorlandım. Temel sorunlardan biri, sistem tasarım kaynaklarında kullanılan terminolojinin ilk bakışta anlaşılmasının zor olmasıydı.
Bu makale, sistem tasarımının önemli bir konusu olan Yük Dengeleyiciyi incelemektedir. Özellikleri ve sunucu seçimi tekniklerini buradan öğrenebilirsiniz. Sistem tasarımının temel kavramları ve terminolojileri hakkında bilgi sahibi olmak, bir sistem tasarlarken büyük ölçüde yardımcı olacaktır.
Yük dengeleyici, herhangi bir dağıtılmış sistemin hayati bir bileşenidir. Uygulamaların veya web sitelerinin yanıt verme hızını ve kullanılabilirliğini artırmak için istemci isteklerini bir sunucu kümesi içinde dağıtmaya yardımcı olur.
Wikipedia'ya göre, “ Yük dengeleme, bir dizi görevi bir dizi kaynak üzerinde dağıtma sürecini ifade eder. "
Örneğin, bir sunucu aynı anda çok sayıda isteğe hizmet veremiyorsa, bir yük dengeleyiciye ihtiyacımız var. Birincil amacı, her görevin yanıt süresini optimize etmektir. Şimdi bir sistemin istemcilerin isteği ile aşırı yüklenmiş bir sunucuya sahip olduğunu varsayalım. Sunucunun saniye başına hizmet isteği sınırı vardır. Bu nedenle, büyük miktarlardaki istekleri işlemek için daha fazla sunucu eklememiz gerekiyor. Ancak sunucular arasındaki yükleri dengelemek için bir yük dengeleyiciye ihtiyacımız olabilir.
Yük dengeleyici, genellikle istemci cihazları ile bir dizi sunucu arasında bulunan ve istemci isteklerini sunucular arasında dağıtan bir sunucudur. Yük dengeleyiciler, bir sistemin çeşitli yerlerine yerleştirilebilir. Sunucular üzerindeki yüklerin dengeli bir şekilde dağıtılması gerekir; bu yüzden bunlara yük dengeleyici denir.
Dolayısıyla, yük dengelemenin, istemci isteklerini birden çok kaynağa dağıtma süreci olduğunu söyleyebiliriz. Bir sunucu yeni isteklerle ilgilenmek için uygun değilse veya yanıt vermiyorsa, LB böyle bir sunucuya istek göndermeyi durduracaktır.
Zaten bildiğimiz gibi, yük dengeleyici sunucu aşırı yüklenmelerini önler. Yük dengeleyicilerin bir diğer önemli görevi, talepleri karşılayabilmelerini sağlamak için sunucularda sürekli sağlık kontrolleri gerçekleştirmektir. Kullanıcı isteklerini dengeleyerek sistem kaynaklarının daha iyi kullanılmasını sağlar. Sistem tasarımında, yatay ölçeklendirme, çok sayıda kullanıcı olması durumunda sistemimizi ölçeklendirmek için yaygın bir stratejidir. Yük dengeleyici, yatay ölçeklendirme için bir çözümdür. Bir LB, bir sistemin gelen trafiğini dengeleyerek bir sunucunun aşırı yüklenmesini önler. Aynı zamanda, sistemin daha iyi bir genel iş hacmi sağlar. İstekler engellenmediğinden ve kullanıcıların isteklerinin işlenmesini beklemesi gerekmediğinden gecikmeler daha az gerçekleşmelidir.
Yük dengeleyiciler, iki tür donanım LB'si ve yazılım LB'si olabilir. Bu yazıda, yazılım yük dengeleyicilerine odaklandık.
Genellikle, gelen ağ isteklerini işlemek için istemci ile sunucu arasına bir yük dengeleyici koyabiliriz. Bir LB'nin çok normal bir başka kullanımı, ağ trafiğini arka uç sunucular arasında dağıtmak içindir. Bağımsız sunucu yükünü azaltmak için bir yük dengeleyici kullanılır. Ve herhangi bir sunucu için tek bir hata noktasını önler. Böylece, sistemin genel kullanılabilirliğini ve yanıt verebilirliğini geliştirir. Sistemin çeşitli yerlerine LB'ler ekleyebiliriz. Özellikle sunucular, veritabanı veya önbellek gibi birden fazla kaynağımızın olduğu yerlerde.
Herhangi bir sistem tasarım bileşeni için, bir bileşeni neden ve ne zaman kullanacağımızı bilmemiz çok önemlidir. Yük dengeleme, sistemin kullanılabilirliği ve genel iş hacmi durumunda hayati bir bileşendir. İşte yük dengeleme kullanımına ilişkin bazı örnekler:
Bir yük dengeleyicinin birden çok sunucudan bir arka uç sunucusunu seçtiğini biliyoruz. Sunucuyu nasıl seçer? Bir yük dengeleyicinin bir istemci isteğini bir sunucuya iletmeden önce dikkate aldığı iki ana faktör vardır:
Çeşitli yük dengeleme yöntemleri vardır. Her tür, farklı amaçlar için farklı algoritmalar kullanır. Bu teknikler aslında sunucu seçimi için farklı strateji türleridir. İşte yük dengeleme tekniklerinin bir listesi:
Yük dengeleyicinin görevi, gelen istemci trafiğini birden çok arka uç sunucusuna dağıtmaktır. Yük dengeleme, kullanıcılar için bekleme süresini azaltır. Bir sistemi ölçeklendirirken, yatay ölçekleme durumunda, bu çok önemli bir bileşendir. Ne kadar çok sunucu eklersek veya kaldırırsak, bir yük dengeleyiciye sahip olmak, değişikliğin korunmasına yardımcı olur. Yeni bir sunucu eklendiğinde veya sunucu havuzundan bir sunucu kaldırıldığında, yük dengeleyicinin güncellenmesi gerekir; aksi takdirde, kaynak israfı olabilir veya bazı talepler karşılanamayabilir. Bir sistem tasarlarken, sistemin ihtiyacına göre sunucu seçim stratejisini seçmemiz gerekiyor.
Kaynak: Sistem Tasarımı Röportajını Düzenleme, Yük dengeleme teknikleri
Bu makale, yeni başlayanlar için bir dizi sistem tasarımının parçasıdır. İşte makalelerin bir listesi.Sistem Tasarım Makaleleri
Yapay Zeka (AI), endüstrilerde devrim yaratma, yaşama ve çalışma şeklimizi değiştirme ve topluma sayısız fayda sağlama potansiyeline sahip, hızla gelişen bir teknolojidir. Ancak, her yeni teknolojide olduğu gibi, dikkate alınması gereken etik hususlar da vardır.
Yapay Zekaya Giriş Yapay Zeka (AI), endüstrilerde devrim yaratma, yaşama ve çalışma şeklimizi değiştirme ve topluma sayısız fayda sağlama potansiyeline sahip, hızla gelişen bir teknolojidir. Ancak, her yeni teknolojide olduğu gibi, dikkate alınması gereken etik hususlar da vardır.
Kubernetes'in yaygınlaştığını söylemek yetersiz kalır. Aslında, modern dağıtılmış sistemlerin nasıl tasarlandığını ve işletildiğini etkiledi.
Bu sadece kodlama ve teknik becerilerle ilgili değil Üç yıl önce, kurumsal dünyaya işlerin nasıl görüneceğine dair tonlarca varsayım ve beklentiyle ilk kez adım attım. Ne kadar yanıldığımı kanıtlamak üzere olduğumu çok az biliyordum.
Kubernetes Kabul Denetleyicisi nedir? Kubernetes kabul denetleyicileri, kimliği doğrulanmış istekleri Kubernetes API sunucusuna yakalayarak ve herhangi bir nesne verisi etcd veri deposunda saklanmadan önce bunları işleyerek ağ geçidi koruyucusu görevi gören eklentilerdir. Kabul denetleyicileri, bir istek nesnesini değiştirebilir / değiştirebilir (Değişen Kabul Denetleyicileri) veya bir isteğe izin verebilir / izin vermeyebilir (Kabul Denetleyicileri) ve bazen her ikisini de yapabilir.
Sprint günlerinde bir Hikaye, önceki 2 haftadaki başarılarımızı (veya başarısızlıklarımızı) yansıtıyoruz. Yakınlaştırmaya atlayıp düşüncelerimizi paylaşıp derinlemesine düşünmeden önce yaklaşık 20 dakika.