Sunucumdan video indiren bir iOS uygulamasını piyasaya sürmeyi planlıyorum. Eğer piyasaya çıkış gününde yüzlerce insan bunu yapmaya çalışırsa, web sitem ve sunucumun sunduğu hizmetler açıkça düşecektir. Bir web sitesini birden fazla sunucuda nasıl barındırırsınız? Birisi siteme erişmeye çalıştığında, istekleri uygun bir sunucuya nasıl iletilir? Apple ve Google bunu nasıl yapar? Yardımınız için teşekkürler.
Büyük adamlar (Google, Apple, vb.) İçin yollar trafiğini karmaşık ve pahalı hale getirdiler.
Daha basit bir çözüm, birden fazla ana makinenizi ayarlamak ve istekleri döndüren tek bir ana bilgisayara sahip olmak olacaktır.
VideoHostN adlı videoyu barındırmak için 5 sunucumuz olduğunu ve RoutingHost adının kullanıldığını izleyenlerden ayrı bir tek sunucumuz olduğunu varsayalım.
İlk iOS istemcisi, adresi RoutingHost'tan almak için adres ister. RoutingHost, VideoHost1'deki adresi döndürür.
İkinci iOS istemcisi istekleri. RoutingHost, VideoHost2 ile yanıt verir.
Böylece bizim varsayımsal max, VideoHost5'e çarpıncaya kadar VideoHost1'e sıfırlar.
Basit bir sunucu tarafı koduna ihtiyacınız var, hangi VideoHost'un kullanılacağını takip edin ve adresi ona geri gönderin.
Kullanıcıları yaymanın ucuz ve kolay bir yolu. Bu, belirli bir VideoHost'ta bazı kullanıcıların tıkanmasına neden olmayacağınızı garanti etmez. Yavaş bağlantılara sahip birkaç kullanıcının aynı konumdan çekilmesi rastgele bir tesadüf, ancak bu bir başlangıç.
@ PeeHaa'nın bilgi için Wikipedia makalesine bağladığı yük dengelemesini yapabilirsiniz burada . Bu biraz kurulum için nasıl ve para ve zaman biliyorum. Google ve Apple gibi büyük şirketler kendileri için yazdıkları teknolojiyi kullanıyorlar ve bunları taklit etmeye çalışmak pahalı ve overkill bir çözüm. Yük dengeleme yapıyorsanız, yaptıklarından çok daha küçük bir şey kullanmak isteyeceksiniz.
Veya videolarınızı veya diğer içeriğinizi barındırmak için bulut sunucularını kullanabilirsiniz. Bunlara İçerik Dağıtım Ağları (CDNS) adı verilir ve şimdi basit dosya barındırma işlemlerinden çok daha fazlasını yapabilirler. Bu sitelerin avantajı, Google’ın yük dengeleme oluşturmak için yarattığı gibi teknolojiyi kullanmaları ve hizmetleri, sunucularında kullandığınız veri veya döngü miktarına dayanarak size satmasıdır. Bu, maliyetinizin kullanımınızla aynı oranda artacağı anlamına gelir; iyi bir gelir modeliniz olduğu sürece her zaman hizmet için ödeyeceğiniz paranız olacaktır. Küçük kullanıcılar için bazı büyük şirketler:
Onlar bu üçünden daha fazlası. Ayrıca, CDN'nin diğer yararı, içeriğinizin tek bir sunucuda değil, dünyadaki bir ağda olmasıdır. CDN'ler bunu yapar, böylece içerik daima kullanıcıya en yakın sunucudan gelir. Tek bir yerde 2+ sunucu kurmak hiçbir zaman CDN'nin sağlayabileceği aynı teslimat hızı avantajlarını sağlamaz.
Kayıt için, bu şirketlerin hiçbiri için çalışmıyorum. Şirketimin web sitesinde video barındırma için Amazon'un Web Servislerini kullandım ve bu büyük bir avantaj oldu.
ZenLoader gibi ücretsiz bir yük dengeleyici yazılımı işe yarayacaktı. Açık kaynak kodlu bir yazılımdır, yalnızca desteğe ihtiyacınız olursa ödeme yaparsınız.
Sunucuları satın aldıysanız, gereksinimlerinizi karşılayacağını duydum.
Sunucularınızı otomatik olarak izlemek için Scalr'ı ec2'de kullanırdım, açık kaynak kodlu ve AWS servisleriyle çok iyi çalışıyor. Bu nedenle, eğer uygulama sunucunuz çok fazla trafik çekmeye başlarsa, Scalr otomatik olarak daha fazla sunucu getirecek ve yükü sizin için dengeleyecektir. Aynı zamanda, köleler usta olarak getirilince, veritabanlarınızı otomatik olarak yedekler. Böylece uygulama sunucularınız ve veritabanı sunucularınız gerektiği gibi izlenir ve ölçeklenir.
Web sitelerini ölçeklemek zor ve pahalıdır. Cloud Computing'in gücünü kullanan Scalr, web sitenizin altyapısını otomatik olarak ölçeklendirir: veritabanınızı ölçeklendirir, uygulama sunucularınızı ölçeklendirir ve hatta yük dengeleme ve önbellekleme sunucuları ekler ve yapılandırır!