2016-03-25 24 views
1

Kullanıcıların yarı gerçek zamanlı etkinlikleri diğer kullanıcılara göndermesine olanak tanıyan bir site geliştiriyoruz. Kullanıcı için yeni bir etkinlik olduğunda kullanıcı arayüzü bir simge gösterecektir (oldukça standart şeyler).Sunucuda periyodik kısa yoklama ölçeği var mı?

Web sunucusuna daha fazla baskı uyguladığı için periyodik kısa yoklamanın websoyutlarının yanı sıra ölçeklemediğini okudum. Bunun neden böyle olacağından emin değilim?

Tomcat NIO kullanıyoruz (iş parçacığı başına bire bir bağlantı içermeyen). Anladığım kadarıyla Tomcat NIO, az sayıda iş parçacığıyla daha uzun HTTP bağlantı zaman aşımlarını ele alma konusunda oldukça iyi.

Dolayısıyla, periyodik yoklama süresi bağlantı zaman aşımından daha azsa, yoklama, varolan bir HTTP 1.1 bağlantısını yeniden kullanacağı için başka bir TCP el sıkışma oluşturmak zorunda kalmamalıdır. Bu nedenle, yukarıdakiler sunucu üzerinde çok fazla baskı oluşturacak gibi görünmemektedir. Uzun yoklama veya websockets gibi gerçek zamanlı olmayabilir, ancak neden ölçeklemeyeceğini anlamıyorum (sunucunun yeni bir olayı belirten bir yanıtla hızlı bir şekilde yanıtlayabileceğini varsayarak) - bu yüzden gerekli hiçbir DB erişimi olmadan oldukça hızlı olmalıdır).

Hiçbir şey eksik miyim?

sayesinde -Adam

cevap

3

Kısa yoklama uzun yoklama ve web soketi gibi moda olmayabilir ancak çalışıyor ve her yerde çalışır.

Trello (SO ile aynı insanların bazıları tarafından desteklenmektedir) normalde web soketleri kullanır ama onlar Kalkış günü kendi web prizler uygulanmasında sakat hata karşılaştı zaman onlar kısa yoklama kurtardı: Vurulduk

lansmandan hemen sonra bir sorun. WebSocket sunucu uygulamamız, TechCrunch kesintisinde ani ve ağır gerçek dünya kullanımında çok garip davranmaya başladı ve aktif ve rölanti yoklama aralıklarını ayarlayarak düz sorgulama ve sunucu performansını ayarlamayı başardık. Bir haftadan kısa bir süre içinde 300'den 50.000 kullanıcıya yükseldikçe incelikle ayrılmamıza izin verdi. Artık WebSockets'a geri dönüyoruz, ancak çalışan bir kısa yoklama sistemine sahip olmak hala çok ihtiyatlı bir geri dönüş gibi görünüyor.

Tam story iyi bir okumaya değer.

Özellikle vurgulamak istiyorum,

  1. HAProxy kullanımı istemci bağlantısını sonlandırmak için. Dahili web sunucularının yavaş ve yanlış davranan istemcilerden korundukları ve tekrar tekrar bağlantı oluşturma yükünün HAProxy'nin ölçeklenebilirliği/verimliliği nedeniyle daha az sorun oluşturduğu anlamına gelir;
  2. Trello'nun yoklama sıklığı ayarlanabilirdi, bu da ağır yük altında tüm istemcilere daha az sorgulama yapabilmelerini ve böylece artırılmış kapasite için yanıt vermeyi değiştirebilmelerini sağlar.

Brezilya'da en azından, kısa vadeli oylama kullanan, hisse senedi fiyatlarının hızlı bir şekilde yayınlanması için çok kısa yoklama aralıkları bulunan ve düzenli olarak binlerce eş zamanlı kullanıcıyı destekleyen birçok perakende ticaret platformu bulunmaktadır.

Uzun yoklama ve web soketlerinden farklı olarak, kısa yoklama kalıcı bir bağlantı gerektirmez, yani ortada HAProxy gibi bir şey varsa, maksimum sayıda "bağlantı" değeriniz, donanımınız tarafından desteklenen eşzamanlı soket sayısından daha büyük olabilir. Bu noktada muhtemelen yanıt vermede bir miktar bozulma görecektiniz).

+0

Bu güçlü bir sunucu ile kastedilen, kısa yoklama 50.000 kullanıcıya kadar idare edebilecek mi? –

+1

50k kullanıcıları için muhtemelen 3-5 sunucu konuşuyorsunuz, ancak bu gerçekten donanımınıza ve kodunuza bağlı. –

+0

Soruma bakabilir ve bana bir yaklaşım konusunda yardımcı olabilir misiniz? Teşekkürler :) http://stackoverflow.com/questions/43314203/appro about-how-many-users-can-short-polling-handle-with-1-server –