2013-02-05 18 views
8

Ich habe mich ein wenig auf WebSockets umgeschaut, und ich habe eine ziemlich konkrete Frage: Können Websockets tatsächlich über verschiedene Server skaliert werden, oder sind sie immer auf einen einzigen Server beschränkt?Websocket Skalierbarkeit

Es scheint, dass dies ein Problem ist, das ich wiederholt in den Dokumenten gefunden habe, die ich gefunden habe, aber vielleicht waren sie unvollständig oder Dinge entwickelten sich. Es scheint zum Beispiel wie heroku gar nicht unterstützt Websockets überhaupt (?)

+0

Hinweis Heroku unterstützt jetzt Websockets, siehe https://devcenter.heroku.com/articles/websockets – gb96

Antwort

3

Es hängt von Ihrer Anwendung, aber im Allgemeinen gibt es keinen Grund, dass Sie Balance Websocket Verbindungen zu mehreren Maschinen auf die gleiche Weise nicht laden können wie jede andere TCP-Verbindung.

+0

WebSockets sind einfach eine persistente Verbindung statt Anfragen und Antworten. Das Offenhalten von Verbindungen ist in der Regel ressourcenintensiver, aber wie @zaphoyd sagt, handelt es sich letztlich nur um TCP-Verbindungen. Die OpenShift-Plattform hat einen [guten Post] (https://openshift.redhat.com/community/blogs/paas-websockets) geschrieben, der die Herausforderungen enthält, vor denen sie stehen, indem sie WebSockets anbieten. Heroku wird ähnliche Herausforderungen bewältigen müssen. Das sind die Probleme, die wir mit [Pusher] (http://pusher.com) überwunden haben. – leggetter

4

Clustering muss von der Serverlösung unterstützt werden, die Sie verwenden. Kaazing (die Firma, für die ich arbeite), bietet sophisticated clustering an, die von den meisten unserer Kunden benutzt wird.

Skalierbarkeit: Dieses Whitepaper: Fastest Million" Over the Web with Kaazing, Dell, and Tibco - beschreibt die Benchmark-Ergebnisse, die Sie mit Clustering erreichen können. In diesem Whitepaper wird die Architektur erläutert, wie 43 Dell R620 Rack-Server, auf denen jeweils ein Kaazing WebSocket Gateway ausgeführt wird, mit einer durchschnittlichen Latenz von 3,5 Millisekunden auf 1.000.000 gleichzeitige Verbindungen mit 10 Nachrichten pro Sekunde skaliert werden können.