2013-02-05 5 views
8

Mi sono guardato un po 'sulle web socket e ho una domanda piuttosto concreta: I websocket possono effettivamente essere ridimensionati su server diversi o sono sempre limitati a un singolo server?scalabilità websocket

Sembra che questo sia un problema che ho riscontrato più volte nei documenti che ho trovato, ma forse erano incompleti o le cose si sono evolute. Ad esempio, heroku non supporta affatto i websocket (?)

+0

Nota Heroku ora supporta websocket, vedere https://devcenter.heroku.com/articles/websockets – gb96

risposta

3

Dipende dalla tua applicazione, ma in generale, non c'è motivo per cui non sia possibile bilanciare le connessioni websocket a più macchine allo stesso modo come qualsiasi altra connessione TCP.

+0

WebSockets è semplicemente una connessione persistente piuttosto che richieste e risposte. Tenere le connessioni aperte è generalmente più dispendioso in termini di risorse ma, come dice @zaphoyd, alla fine si tratta solo di connessioni TCP. La piattaforma OpenShift ha scritto un [buon post] (https://openshift.redhat.com/community/blogs/paas-websockets) che include le sfide che devono affrontare offrendo WebSockets. Heroku dovrà superare sfide simili. Questi sono i problemi che abbiamo superato con [Pusher] (http://pusher.com). – leggetter

4

Il clustering deve essere supportato dalla soluzione server che si sta utilizzando. Kaazing (la società per cui lavoro), offre sophisticated clustering che viene utilizzato dalla maggior parte dei nostri clienti.

Per quanto riguarda la scalabilità: questo white paper: Fastest Million" Over the Web with Kaazing, Dell, and Tibco - descrive i risultati del benchmark che è possibile ottenere con il clustering. Il documento discute l'architettura del modo in cui 43 server rack Dell R620, ognuno dei quali eseguiva un Kaazing WebSocket Gateway, poteva scalare fino a 1.000.000 di connessioni simultanee, 10 messaggi al secondo, con una latenza media di 3,5 ms.