Il push via web socket aumenta il carico del server se ho troppe richieste di scrittura?

3

Ho troppe richieste di scrittura sul database. Attualmente l'implementazione della mia app è tale da rendere pull call al server ogni 5 secondi per aggiornare i dati modificati.

Se implemento push through web socket, aumenta il carico del server (principalmente il numero di interrogazioni che vengono generate su mysql)? Perché ora sul cambio di dati (che è ogni secondo) invierà push ad ogni client, quindi ogni secondo ora eseguirà query sql per ogni client e aumenterà il carico sul mio server db? Sto usando mysql, php nel backend.

    
posta pankaj 07.09.2015 - 09:34
fonte

1 risposta

1

L'evento push può essere semplicemente una notifica che roba è cambiata sul server. Non deve contenere i dati effettivi. I clienti possono estrarre quei dati solo se e quando ne hanno bisogno. In questo modo, non avrai nessun sovraccarico sul server. Al contrario, ti sbarazzi delle richieste di polling ogni 5 secondi.

L'unico svantaggio di questo approccio è la latenza più alta rispetto al server che spinge tutto lo scenario dei dati, a causa dell'ulteriore round trip, ma la latenza è attualmente in media di circa 2,5 secondi, (circa la metà dei 5 secondi di polling intervallo,) quindi il viaggio di andata e ritorno che sto suggerendo in realtà rappresenta un enorme miglioramento rispetto a quello che attualmente hai.

Inoltre, il server non ha bisogno di inviare una notifica push a un cliente che ha già ricevuto una notifica push ma non ha ancora richiesto alcun dato. Ciò significa che puoi ridurre drasticamente le notifiche push.

Quindi, le chatter tra il client e il server vanno come segue:

Server to client: "Stuff has changed".
Client to server: "Gimme the changed stuff since XX:XX:XX GMT".
Server to client: "Here is your changed stuff".
    
risposta data 07.09.2015 - 12:14
fonte

Leggi altre domande sui tag