SORU
30 Kasım 2010, Salı


Django / Kuyruklu yıldız (Bas): tüm kötülüklerin Az?

Tüm soruları okudum ve Django ve HTTP İtme ile ilgili bulabildiğim cevaplar. Henüz hiç biri, temel bir "merhaba" sözde "" işlevselliği. kuyruklu yıldızın dünya başarmak için nasıl hakkında net, özlü, baştan uca bir çözüm sunuyoruz

Ne ölçüde bu sadece HTTP (en azından şimdilik) değil sorun bu yapılır mı? ilk soru (1): Tüm olası çözümleri aslında kesmek?

2) şu anda mevcut olan en iyi çözüm?

  • Etrafında dönerken?
  • Çarpık tabanlı başka bir çözüm?
  • Tornado?
  • node.JS?
  • W/ BOSH XMPP?

Başka bir çözüm?

3) Nasıl nginx push mu bu tartışma içine oyun modülü?

Bu çözümleri 4) mod_wsgi / nginx (ya da apache) tipik bir dağıtım modelinin değiştirilmesi gerekir? Neden bu ihtiyacı var mı? Bu herhangi bir durumda olumlu bir geçiştir?

5) Ne kadar önemli zaten Python bir çözüm kullanmanın avantajları nelerdir?

Aklıma çok güzel ve bilgilendirici, ama değil blip.tv, müthiş özel HTTP bugünkü durumu üzerinde seyretti 2010, Django İtin PyCon gelen Alex Gaynor sunumu. O bana verdi ama söylediği bir tek şey biraz güven ve bu ağ Etrafında ve yuva kavramı özetleme taklit iyi bir iş yok. WebSockets aslında arazi böyle bir geçiş için iyi bir yerde olacağız.

6) Nasıl HTML5 Websockets geçerli çözümler farkı nedir? Etrafında geçiş kolaylığı gaynor'ın değerlendirme doğru mu?

CEVAP
9 Aralık 2010, PERŞEMBE


Eğer ihtiyacınız olan tüm kuyruklu yıldız ise evserver (http://code.google.com/p/evserver/) bakmak istiyorum.

"[Bu] küçük WSGI uzantısı" ve etrafında inşa edilir libevent. Asenkron bilinen destekler İşler tıkır tıkır ve django destekler. Gerçek işleyicisi kodu biraz çirkin, ama gerçekten uyumsuz io de terazi.

Evserver kullandım ve şu anda evserver offsers biraz daha fazla ihtiyacım var çünkü siklon (hedefte kasırga) taşınıyorum. Gerçek çift yönlü io (sanırım yuva lazım.ıo (http://socket.io/)) ve evserver olabilir destek sanıyordum, daha kolay yeniden gerçeklemek tornado's socket.io siklon (İ tercih için siklon yerine tornado siklon olarak inşa bükülmüş, böylece izin verdiği için daha fazla taşıma değil uygulanan çarpık (ben.c. zeromq)) Yuva.ıo websockets destekler, stil yoklama kuyruklu yıldız, ve çok daha interseting, websockets tabanlı flash. Bence bu en pratik durumlar websockets flash tabanlı websockets yeterli destek 99% (göre adobe flash penetrasyon hakkında 99% (http://www.adobe.com/products/player_census/flashplayer/version_penetration.html)) web sitelerine ziyaretçi (sadece insanlar değil kullanarak flash lazım geri dönüş için bir yuva.(az perfomant ve kaynak hogging) yedek taşımaları) ıo

Ama farkında olunwebsockets http aktarımı değildirböylece http tabanlı proxy (e.arkasına koyarak g modu http) haproxy bağlantıyı keser. Daha iyi bir alternatif ıp onlara hizmet ya da tcp proxy modu, böylece bağlantı noktası (e.tcp modunda g haproxy).

Sorularınızın cevabı: (1) ise iki yönlü bir taşıma ihtiyacın Varsa ... longpolling tabanlı çözümler yeterli (tüm yaptıkları bir bağlantısı açık tutun). Şeyler bağlantınızı statefull ne zaman bir şüpheli ya da veri göndermek ve almak için hem de gerekir. İkinci durumda yuva.ıo yardımcı olur. Ancak websockets flash desteği ile bu senaryo için yapılmış bir web sitelerinin çoğu için kullanılabilir (yuva). ziyaretçi ıo veya tek başına, ancak yuva.ıo insanlar flash yüklemek istemeyen) için yedekleme taşıma yararı vardır

(2) Eğer ihtiyacınız olan tüm itme, evserver en iyi bahistir. Etrafında dönerken istemci tarafında aynı JavaScript kullanır. Başka yuva bak.ıo (bu da destekleyen bir sunucu ihtiyacı, sadece python bir hortum kullanılabilir.)

(3) sadece bir server uygulaması. Eğer doğru okuduysam sadece itme var. bir istemci için veri iterek nginx sunucu için app http equest yaparak yapılır. istemci ulaşmak ilgilenir nginx (). Eğer bu inteersted iseniz, mongrel2 sadece websockets için longpolling için değil, aynı zamanda işleyicileri vardır bak.(yerine verme http isteği için bir melez, bu sefer kullandığınız zeromq işleyicileri için veri almak için melez sunucusu) (dikkat geliştirici eksikliği coşku için websockets ve flash tabanlı websockets. Websocket protokolü, bir noktada, mongrel2. websocket filmin gerekebilir gelişmeye eğilimi özellikle dikkate alarak, kendiniz için websockets desteği devam) desteği

(4) Tüm çözümleri evserver başka bir şey ile wsgı değiştirmek dışında. Çoğu sunucu da bu bazı wsgı destek üzerine olsa da "başka bir şey". Yoğun veya başka bir cpu ıo engelleme isteği sunucu engellemez dikkatli olun seçtiğiniz ne olursa olsun. (ya da birden çok örneği veya iş parçacığı).

(5) çok önemli Değil. Tüm çözümleri bazı özel işleyicileri (ve varsa alma) istemciye veri göndermek için bağlıdır. Bahsettiğim tüm çözümleri bu işleyicileri python ile yazılmış izin verir. Kullanmak isterseniz tamamen farklı bir çerçeve (node.js sonra sana sahip olduğu için ağırlığı hareket hızı node.js (bunu kabul etmek kolay, ama aynı zamanda oldukça deneysel ve buldum çok az kütüphaneleri için aslında istikrarlı) karşı kullanarak kolaylık mevcut kod tabanı ve mevcut kütüphaneleri (örneğin, uygulamanız gereken bir blog orada var django bloglar olabilir takın, ama hiçbiri için node.js Ayrıca bakma öyle kendini kör performans istatistikleri. müşteri aptal önceden tanımlanmış veri tüm kriterler de onu itmek için plan sürece gerçek veri işleme ekler bulabilirsinizçokdaha fazla yükü bile daha kötü io uygulama uyumsuz. (Ama yine de eğer çok eşzamanlı istemci, parçacığı sadece bağlantıları binlerce canlı tutmak için değil planlıyorsanız zaman uyumsuz ıo sunucu tabanlı kullanmak istiyorum)

(6) websockets çift yönlü iletişim sunar, uzun yoklama/kuyruklu yıldız sadece veri iter ama yazar kabul etmez. (Soket.ıo iki http istekleri, longpoll bir veri göndermek için birini kullanarak bu iki yönlü desteği taklit eder. Bölüm (oturum) kimliği string sorgu iki istekleri) tarafından interdependance izler. flash websockets göre gerçek websockets (fark kendi uygulama video, tarayıcınız değil yani) benzer. Ayrıcawebsockets protokolü http protokolü takip etmez;/comet şeyler longpolling(teknik olarak websocket istemci sunucu websocket yükseltme isteği gönderir, yükseltilen http protokolü artık) değil

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Emotional Trancer

    Emotional Tr

    4 Mart 2010
  • LearnCode.academy

    LearnCode.ac

    20 Aralık 2012
  • midomansour

    midomansour

    19 EYLÜL 2009