Ho visto 3 post diversi sull'utilizzo di ELB con i websocket, ma sembrano tutti usare i client javascript o avere qualche altra variabile che non si applica alla nostra situazione.È possibile utilizzare Amazon ELB in modalità TCP per distribuire le connessioni Websocket su più server Websocket basati su Tomcat?
Abbiamo più server web socket in esecuzione in Tomcat. Desideriamo li davanti con ELB e hanno tutti i clienti websocket (cioè 100s di 1000s) collegarsi al ELB, che ha la necessità di:
- avanti la richiesta di aggiornamento/collegamento a 1 dei nostri server websocket
- poi fare quella connessione appiccicosa in modo che tutto il traffico bidirezionale passi tra lo stesso client e server per tutta la durata della connessione
E 'possibile oggi con ELB? Se possibile, ci sono particolari configurazioni/configurazioni che devono essere fatte? Quali limiti ci sono sul numero di connessioni simultanee supportate da Amazon ELB in modalità TCP?
Abbiamo provato a testarlo in modalità TCP, ma dopo alcune 100 connessioni, le connessioni hanno avuto esito negativo. Se ci colleghiamo direttamente a un singolo server websocket, tuttavia, possiamo stabilire connessioni a websocket 80K (o più).
Grazie, Bob
Probabilmente si desidera esplorare il bilanciamento L4 con la distribuzione appiccicosa basata sull'hash di IP/porta di origine (ad esempio, OpenBSD 'relayd' può farlo). Un L4 LB non consuma (significativo) mem per TCP. Vedi qui: https://forums.aws.amazon.com/thread.jspa?threadID=120775# – oberstet
Un'altra opzione potrebbe essere per i server Web dietro l'ELB per rispondere alla connessione iniziale con l'EIP del server web stesso, quindi il resto della sessione client passa direttamente allo specifico server web. – jarmod
Usa nginx o haproxy invece di ELB? http://johan.heapsource.com/post/31047804966/the-state-of-websockets-ssl-and-sticky-sessions-in – jarmod