Il server di aggiornamento asincrono dovrebbe trovarsi sullo stesso server fisico del sito web?

0

Voglio configurare un server comet / web-socket per un forum seduto di fronte a una coda di messaggi, ad es. rabbitmq, che manterrà le connessioni client e le aggiornerà sugli eventi rilevanti (ad es. nuovi messaggi, argomenti, ecc.)

Il modo più popolare per fare questo è usare un server asincrono che faccia questo in un thread e trasferisca le attività di blocco ad altri thread worker. La mia domanda è, dovrebbe questo server di aggiornamento asincrono essere sullo stesso server fisico del sito web? In altre parole, il compito di mantenere le connessioni client e aggiornarle quando necessario dovrebbe essere separato dal compito di creare e restituire pagine Web dinamiche, giusto? Dovrebbero essere sullo stesso server o separati completamente?

I criteri per valutare la decisione sono le prestazioni e la facilità di scalabilità.

Inoltre, questa domanda non riguarda le piattaforme specifiche da utilizzare. Sto chiedendo la pratica generale di separare le preoccupazioni: servire pagine web dinamiche vs aggiornamenti; quando è meglio metterli insieme e quando è meglio separarli? (fisicamente sul server e nella base del codice)

    
posta goldenarms 08.12.2014 - 18:44
fonte

2 risposte

1

Potresti usare NodeJS e il modulo del pacchetto di nodi Socket.io per questo. Separare i compiti delle connessioni client e creare / restituire pagine web dinamiche in moduli nodo potrebbe funzionare come descritto. Il nodo descrive i loro moduli nei loro documenti API .

Il libro NodeJS in Action ha alcuni progetti che offrono funzionalità simili (anche la ChatApp di base nel Capitolo due lo esegue in una certa misura.

    
risposta data 08.12.2014 - 19:05
fonte
-2

Uso link , si tratta di un'applicazione standalone che utilizza websocket e ricade al polling lungo se fallisce. A differenza della centrifuga, ho avuto molti problemi con la cometa con volumi elevati, non ha scalato bene per vari motivi.

Centrifuga ha anche un file di dati docker in modo da poter letteralmente far girare il server su un server in pochi secondi. Il tuo front end web richiede un minimo di javascript e lato server è anche molto semplice da inviare messaggi a

    
risposta data 08.12.2014 - 20:43
fonte

Leggi altre domande sui tag