3

nghttp2RESTful API サーバーの実装に使用しています。と の 2 つの GET API を定義 /api/ping/api/waitました。前者への応答はすぐに送信されますが、サーバーは後者に応答する前に何らかの処理を行います。サーバーに 4 つのスレッドを割り当てました。

クライアント (これも を使用して実装nghttp2) からサーバーに接続し、API 呼び出しを 1 つずつ/api/wait行いました。最初に/api/ping. Wireshark を使用して、2 つの GET 要求が 2 つの異なる TCP パケットで送信されていることを確認しました。ただし、サーバーが の処理を​​完了するまでは、他のスレッドが使用可能であっても、 を/api/wait処理しません。/api/ping

クライアントから 2 つの TCP 接続を確立し、異なる接続で 2 つの API 呼び出しを行い、サーバーがそれらを並行して処理しました。

これは、nghttp21 つの TCP 接続を 1 つのスレッドで排他的に処理し、1 つの TCP 接続からの要求を順番に処理するように設計されているということですか? nghttp2これを回避するための設定はありますか?これは、Web アプリケーション (要求を順次処理する) には適した機能かもしれませんが、API が互いに独立している API サーバーには適していません。

4

0 に答える 0