Webサーバーが一部のリクエストをバックエンドサーバーにリダイレクトするアプリを入手しました。バックエンドサーバー(Linux)は複雑な計算とWebサーバーへの応答を行います。Web サーバーとバックエンド サーバー間の tcp ソケット接続管理には、次の 2 つの基本的な戦略があると思います。
「短い」接続: つまり、リクエストごとに 1 つの接続です。これは、ソケット管理が非常に簡単で、プログラム構造全体が単純化されているようです。acceptの後、リクエストを処理するスレッドを取得し、最後にこのソケットを閉じます。
「長い」接続: つまり、1 つの tcp 接続に対して、複数の要求が 1 つずつ存在する可能性があります。この戦略は、ソケット リソースをより有効に活用し、パフォーマンスを向上させる可能性があるようです (よくわかりません)。しかし、これは「短い」接続よりも多くの複雑さをもたらすようです。たとえば、ソケット fd がマルチスレッドで使用される可能性があるため、同期が必要になります。さらに、ソケット障害プロセス、メッセージ シーケンスなどがあります。
これら2つの戦略について何か提案はありますか?
更新:、@SargeATM の回答は、バックエンド サービスについて詳しく説明する必要があることを思い出させてくれます。各リクエストは一種のコンテキストフリーです。バックエンド サービスは、1 つのリクエスト メッセージに基づいて計算を実行できます。sthらしい。ステートレス。