web-dev-qa-db-ja.com

非同期HTTPの利点は何ですか

Q.1synchronous HTTP、リクエストごとにスレッドが生成されてブロックされる可能性があるため、同時接続数が増えると、大量のスレッドオーバーヘッドが発生します。
非同期モードでは、必要なオーバーヘッドのポーリング応答が許容されますが、スレッドの数は大幅に減少します。
私も知っていますAsynchronous HTTPは、配信された応答が完全な応答ではない(応答の一部のみが受信される)場合でも、リアルタイムのアクションに適したアクションを実行できるようにします。
しかし、他の利点は何ですかAsync HTTP

Q.2クライアントが1つしかないサーバーがありますが、そのクライアントは1秒あたり数千のリクエストを送信します。私はブロッキングを使用しますIO(Synchronous HTTP)軽量スレッド(Quasar)。非同期に切り替える必要がありますか?私にとってそれを行う利点は何ですか?

編集詳細な説明。 1秒あたり同じクライアントからのリクエストが3〜4000のHTTPサーバーがあり、クライアントは1つしかありません。非同期HTTPの代わりに軽量HTTPを同期HTTP(たとえば、ブロッキングIO)と組み合わせて使用​​することで、スレッドオーバーヘッドの問題を解決しました。
スレッドのオーバーヘッドを削除するだけでよいのかわからないのですが、非同期APIを使用していないために、後で他の問題が発生するのでしょうか? (そして、これはおそらくQ.1を意味する非同期APIの完全な利点を知らないためです)
よろしく

2

あらゆる状況における非同期性の利点は、ユーザーがメソッド呼び出しが完了するのを待つ必要がないことです。これには、特にUIでの利点があります。メソッド呼び出しをブロックしないと、UIのユーザー応答性が向上します。

「非同期に切り替えるべきですか?」に対する答え「アプリケーションの応答性が向上しますか?」特定のアプリケーションの動作の観察に基づいて、あなただけがそれを決定できます。一般的に、「長い」の任意の定義に対して、完了するまでに長い時間がかかるメソッドに対してのみ(もしあれば)非同期を使用します。

5
Robert Harvey