2013-02-05 10 views
8

Rozejrzałem się trochę na stronach internetowych i mam dość konkretne pytanie: Czy websockets mogą być skalowane na różnych serwerach, czy zawsze są ograniczone do jednego serwera?skalowalność websocket

Wydaje się, że jest to kwestia, o której wielokrotnie natknąłem się w dokumentach, które znalazłem, ale być może były niekompletne lub ewoluowały. Wydaje się na przykład, że heroku nawet nie obsługuje w ogóle stron internetowych (?)

+0

Uwaga Heroku obsługuje teraz websockets, zobacz https://devcenter.heroku.com/articles/websockets – gb96

Odpowiedz

3

Zależy to od aplikacji, ale ogólnie nie ma powodu, aby nie ładować balansujących połączeń websocket do wielu maszyn w ten sam sposób jak każde inne połączenie TCP.

+0

WebSockets są po prostu stałym połączeniem, a nie żądaniami i odpowiedziami. Trzymanie otwartych połączeń jest na ogół bardziej zasobochłonne, ale, jak mówi @zaphoyd, ostatecznie są one po prostu połączeniami TCP. Platforma OpenShift napisała [dobry post] (https://openshift.redhat.com/community/blogs/paas-websockets), która zawiera wyzwania, przed którymi stoją, oferując WebSockets. Heroku będzie musiał pokonać podobne wyzwania. Oto problemy, które poradziliśmy sobie z [Pusher] (http://pusher.com). – leggetter

4

Clustering musi być obsługiwany przez rozwiązanie serwerowe, którego używasz. Kaazing (firma, w której pracuję), oferuje sophisticated clustering używaną przez większość naszych klientów.

Co do skalowalności: ten oficjalny dokument: Fastest Million" Over the Web with Kaazing, Dell, and Tibco - opisuje wyniki testów porównawczych, jakie można uzyskać dzięki klastrowaniu. Artykuł omawia architekturę serwerów Dell R620 w wersji rack, z których każda działa z bramką Kaazing WebSocket Gateway, może skalować do 1 000 000 współbieżnych połączeń, 10 wiadomości na sekundę, z 3,5-krotnym opóźnieniem.