Quali sono i vantaggi di Asynchronous HTTP

1

Q.1 So che quando parliamo di synchronous HTTP , per ogni richiesta un thread può essere spawnato e bloccato, quindi quando il numero di connessioni simultanee aumenta, incontreremo un thread enorme overhead.
La modalità asincrona tollererà alcune risposte di polling generali per qualcosa desiderato, ma il numero di thread diminuirà drasticamente.
So anche che Asynchronous HTTP ci consentirà di agire anche quando la risposta fornita non è la risposta completa (solo una parte della risposta è ricevuta) che è appropriata per le azioni in tempo reale.
Ma quali sono gli altri vantaggi di Async HTTP ?

Q.2 Ho un server che ha solo e solo un client, ma quel client invierà migliaia di richieste al secondo. Io uso il blocco IO ( Synchronous HTTP ) con i thread leggeri ( Quasar ). Devo passare ad Async? Qual è il vantaggio di farlo per me?

EDIT. Ulteriori chiarimenti. Ho un server HTTP con 3-4 mila richieste dallo stesso client al secondo e ho un solo client. Ho risolto il problema dell'overhead del thread utilizzando thread leggeri insieme a HTTP sincrono (ad esempio, bloccando IO) invece di usare Async HTTP.
Ora non so se rimuovere l'overhead del thread fosse tutto il lavoro che dovevo fare, o affronterò qualche altro problema in seguito a causa dell'utilizzo di API asincrone? (E questo forse perché non conosco tutti i vantaggi dell'API asincrona che significa Q.1)
Saluti

    
posta Alireza Mohamadi 07.06.2016 - 17:13
fonte

1 risposta

6

Il vantaggio dell'asincronismo in qualsiasi contesto è che l'utente non deve attendere il completamento della chiamata al metodo. Questo ha dei vantaggi in particolare nell'interfaccia utente, dove non bloccare i risultati di una chiamata al metodo l'interfaccia utente sembra essere più reattiva per l'utente.

La risposta a "dovrei passare ad async?" è "migliorerà la reattività dell'applicazione?" Solo tu puoi decidere che, in base alle tue osservazioni sul comportamento della tua specifica applicazione. In generale, dovresti usare async (se non del tutto) per i metodi che impiegano molto tempo per completare, per una definizione arbitraria di "long."

    
risposta data 07.06.2016 - 17:43
fonte

Leggi altre domande sui tag