Domanda

è in streaming una valida opzione? ci sarà una differenza di prestazioni sul lato server a seconda di quale scegliere? è uno meglio dell'altro per questo caso?

Sto lavorando su un'applicazione GWT con Tomcat in esecuzione sul lato server. Per capire le mie esigenze, immaginare l'aggiornamento dei prezzi delle azioni di vari stock contemporaneamente.

È stato utile?

Soluzione

Vuoi il processo sia client-server o guidato? In altre parole, vuoi spingere i nuovi dati ai clienti, non appena è disponibile, o preferisci che i clienti richiedere nuovi dati ogni volta che vedono in forma, anche se questo potrebbe non essere una volta / secondo? Qual è la probabilità che il cliente sarà in grado di attaccare intorno ad aspettare una risposta? Anche se ci si aspetta gli eventi che si verifichi una volta / secondo, quanto tempo ci vuole tra una richiesta da un client e il ritorno dal server? Se si tratta di più di un secondo, mi aspetto di magra verso spingere gli eventi ai clienti, anche se il contrario, mi aspetto di polling per essere a posto. Se la risposta richiede più tempo dell'intervallo, allora si sta essenzialmente in streaming in ogni caso, dal momento che c'è un nuovo evento pronto per il momento il cliente riceve l'ultimo, in modo che il cliente potrebbe essenzialmente polling continuo e sempre ricevere gli eventi - in questo caso, lo streaming il dato sarebbe in realtà essere più leggero, dal momento che si sta rimuovendo l'overhead di connessione / negoziazione dal processo.

Ho il sospetto che il carico del server per essere più alto per un abbonamento basato su client (pull), invece di una configurazione in streaming, dal momento che il cliente avrebbe dovuto rinegoziare la connessione ogni volta, invece di lasciare una connessione aperta, ma ogni connessione aperta in un modello di streaming richiederebbe risorse del server pure. Dipende da quello che il trade-off è tra il modo aggressivo il vostro processo di negoziazione è contro quanto è richiesto di memoria / di elaborazione per ogni connessione aperta. Non sono un esperto, però, così non ci possono essere altri fattori.

UPDATE: questo ragazzo parla del trade -off tra polling lungo e streaming, e lui sembra dire che con HTTP / 1.1, il processo di connessione di rinegoziazione è banale, in modo che non tanto di un problema.

Altri suggerimenti

Non ha molta importanza. L'overhead di connessione rinegoziazione è così sottile con HTTP1.1, non si noterà alcuna significativa differenze di prestazioni in un modo o in un altro.

I benefici di lungo polling siano compatibili e affidabili -. Problemi con i proxy, porte, disconnette rilevamento, etc

I benefici di streaming "vera" sarebbe potenzialmente essere ridotti in testa, ma come già detto, il vantaggio è molto, molto meno di quanto è fatto fuori per essere.

Personalmente, trovo un server cometa ben progettato per essere la soluzione migliore per un gran numero di aggiornamenti e / o del server-push.

Certo, se stai cercando di spingere i dati, lo streaming sembrerebbe fornire prestazioni migliori, se il server è in grado di gestire il numero atteso di connessioni continue. Ma c'è un altro problema che non richiamate: Sei internet o intranet? Streaming è stato segnalato per avere alcuni problemi attraverso proxy, proprio come ci si aspetterebbe. Così, per una soluzione di uso generale, si sarebbe probabilmente meglio servita da lungo sondaggio - per un'intranet, in cui si capisce l'infrastruttura di rete, lo streaming è molto probabile una migliore soluzione più semplice prestazioni per voi

.

Il StreamHub adattatore Comet GWT è stato progettato proprio per questo scenario di lo streaming quotazioni di borsa. Esempio qui: Streaming GWT della citazioni . Si aggiorna i prezzi delle azioni di vari stock contemporaneamente. Credo che l'implementazione sotto è la cometa che è essenzialmente lo streaming su HTTP.

Modifica: Esso utilizza una tecnica diversa per ogni browser. Per citare il sito web:

  

Ci sono diversi sottostante   tecniche utilizzate per implementare Comet   compresi Hidden iFrame,   Polling XMLHttpRequest / Script lungo,   e plugin come Flash incorporato.   L'introduzione di HTML 5 WebSockets   in per i browser futuri fornirà un   meccanismo alternativo per HTTP   Streaming. StreamHub utilizza un "best-fit"   approccio che utilizza la più performante   e tecnica affidabile per ciascun   browser.

Streaming sarà più veloce perché i dati attraversa solo il filo di un modo. Con il polling, la latenza è almeno due volte.

Polling è più resistente alle interruzioni di rete in quanto non si basa su una connessione sia mantenuta aperta.

Mi piacerebbe andare per il polling solo per la robustezza.

Per i prezzi delle azioni in tempo reale Vorrei assolutamente mantenere aperta la connessione, e garantire avviso utente / riconnessione al momento della disconnessione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top