SORU
31 Ocak 2011, PAZARTESİ


HTML WebSockets her müşteri için açık bir bağlantı sağlamak? Bu ölçek?

Eğer herkes HTML WebSockets ve ölçülebilirlik hakkında bilgisi olan varsa merak ediyorum. Okuduğum her şey için her istemci sunucusu ile iletişim açık bir çizgi tutmak olacak gibi görünüyor. Sadece nasıl bir sunucu işleyebilir ölçekler ve kaç açık WebSocket bağlantı olduğunu merak ediyorum. Belki de bu bağlantıları açık bırakarak gerçekte bir sorun değil, ama öyleymiş gibi hissediyorum.

CEVAP
3 ŞUBAT 2011, PERŞEMBE


Bir çok yönden WebSockets muhtemelen daha iyi AJAX/HTML istekleri ölçek. Ancak, bu WebSockets AJAX/HTML tüm kullanımlar için bir yedek olduğu anlamına gelmez.

Kendisi her TCP bağlantısı sunucu kaynakları açısından çok az tüketir. Sık sık bağlantı kurma pahalı ama bakımı olabilir neredeyse boş bir bağlantı. Genellikle karşılaşılan ilk sınırlama aynı anda açık dosya tanımlayıcıları (yuva dosya tanımlayıcıları tüketmek) sayısıdır. Bu genellikle 1024 varsayılan ama kolayca daha yüksek yapılandırılabilir.

Hiç Yapılandırma web sunucusu eşzamanlı AJAX istemcileri onbinlerce desteklemek için çalıştı? WebSockets istemcileri ve bu istemcilerin değişim sadece mümkün olabilir.

Açık dosyaları oluşturmak veya uzun bir süre için port numaralarını tüketmezler. HTTP bağlantıları sırasında, hemen hemen her şekilde daha pahalı

  • Her HTTP bağlantısı çoğu zaman kullanılmayan çok eşya taşır: çerezler, içerik türü, conetent uzunluğu, user-agent, sunucu kimliği, tarih, son değişiklik, vb. WebSockets bir bağlantı kurulduktan sonra, sadece veri uygulama için gereken ileri ve geri gönderilmesi gerekiyor.

  • Genellikle, HTTP sunucuları her HTTP isteği, disk ve CPU zamanını aldığı başlangıç ve tamamlanması oturum açmak için yapılandırılır. Dönecek standart günlük başlangıç ve tamamlanma WebSockets veri, ama süre WebSockets bağlantı yaparken çift yönlü transfer olmayacak, herhangi bir ek günlüğü yükü (dışında uygulama/servis ise dizayn için bunu yapmak).

  • Genellikle, AJAX kullanan etkileşimli uygulamalar da sürekli anket veya uzun anket mekanizması bir çeşit kullanın. WebSockets sunucu ve istemci mevcut bağlantı üzerinden rapor edilecek bir şey olduğunda birbirimizi haberdar yerde daha bir olay modeli ... işin çok daha temiz (alt kaynak) bir yoldur.

  • Üretim popüler web sunucuları en HTTP isteklerini işleme süreçleri (veya konuları) bir havuzu var. Havuzun boyutu her/thread süreci nedeniyle artırılacak olarak basınç arttığı bir zamanda bir HTTP isteği işler. Her ek işlem/iş parçacığı daha fazla bellek kullanır ve yeni süreç oluşturma/iş parçacığı yeni soket bağlantıları bu işlem/iş parçacığı hala yapmak zorunda olan) yaratmaktan daha biraz daha pahalı. Popüler WebSockets sunucu çerçevelerin çoğu olay ölçekli ve daha iyi performans eğilimindedir hangi yol olur.

WebSockets birincil yararı etkileşimli web uygulamaları için düşük gecikme bağlantıları olacak. Olacak ölçek daha iyi ve daha az tüket sunucu kaynaklarını daha HTTP AJAX/uzun-anket (varsayarak uygulama/sunucu tasarlanmış düzgün), ama IMO düşük gecikme birincil yararı WebSockets çünkü sağlayacaktır yeni sınıfların web uygulamalar mümkün olan mevcut havai ve gecikme AJAX uzun yoklama.

WebSockets standart daha kesinleşmiş olur ve daha geniş destek bir anlamda sık sık sunucu ile iletişim kurmak için gereken en yeni etkileşimli web uygulamaları için kullanmak için yapacaktır. Mevcut etkileşimli web uygulamaları için çok uzun anket AJAX/mevcut modele nasıl çalıştığını bağlıdır. Dönüştürmek için çaba önemsiz olacak birçok durumda maliyet sadece yararı olmayacak.

Güncelleme:

Yararlı bağlantı: 600k concurrent websocket connections on AWS using Node.js

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Influencer Plus

    Influencer P

    2 Ocak 2013
  • PUSHER

    PUSHER

    11 HAZİRAN 2014
  • Vladimir Jenko

    Vladimir Jen

    1 Mart 2010