Q.1 Ich weiß, dass, wenn wir über synchronous HTTP
sprechen, für jede Anfrage ein Thread spawn und blockiert werden kann, wenn die Anzahl der gleichzeitigen Verbindungen steigt, werden wir massiven Thread begegnen Overhead.
Der asynchrone Modus toleriert einige Overhead-Polling-Antworten für etwas Gewünschtes, aber die Anzahl der Threads nimmt drastisch ab.
Ich weiß auch, dass Asynchronous HTTP
lassen Sie uns Maßnahmen ergreifen, auch wenn die Antwort geliefert ist nicht die vollständige Antwort (nur ein Teil der Antwort ist erhalten), die für Echtzeit-Aktionen geeignet ist.
Aber was sind weitere Vorteile von Async HTTP
?
Q.2 Ich habe einen Server, der nur und nur einen Client hat, aber dieser Client wird tausende Anfragen pro Sekunde senden. Ich benutze blockierende IO (Synchronous HTTP
) mit leichten Threads (Quasar
). Sollte ich zu Async wechseln? Was bringt es, das für mich zu tun?Was sind die Vorteile von Asynchronous HTTP
0
A
Antwort
1
Erstens, ich glaube nicht, wir sprechen über "asynchrones HTTP" wegen mehrdeutiger Bedeutung.
sind es zwei Fälle, in denen wir sowohl asynchrone als auch http erwähnen:
- Für Kunden, es ist asynchronous request;
- Für Server ist es asynchrone E/A;
Ich denke, Ihre Frage ist eigentlich über das letztere.
A.1 Vorteile asynchroner I/O
- Es kann zur gleichen Zeit eine große Anzahl von Kunden/Anfragen bearbeiten. Siehe C10k problem.
- Es kann die Leerlauf-Threads wiederverwenden, um einen höheren Durchsatz zu erzielen, wenn jede Anfrage eine lange Wartezeit erfordert (Warten auf Platten-E/A, DB usw.).
A.2 Sie können wechseln, wenn Ihr Szenario eines der oben genannten entspricht.