SIP を使用して Tomcat 7 で HTTP 要求を非同期処理すると、Web アプリケーションのパフォーマンスが向上するという記事を読みましたが、これがどの程度正しいのかはわかりませんでした。ブラウザーが HTTP 要求を行うと、その要求を処理するスレッドが、SIP エンポイントで新しいアクティビティを待機して待機する新しいスレッドを生成し、最初に要求を処理したスレッドが解放されることを読みました。しかし、SIP エンドポイントでリッスンしているアイドル状態のスレッドがまだ 1 つあります。これは本当に良いですか?
1 に答える
統合された HTTP/SIP アプリケーションはサーバー側での非同期処理サポートを大いに活用できますが、Web サーバーのパフォーマンスを向上させるのは非同期処理機能だけであることを明確にする必要があります。
Java Servlet 3.0 は非同期要求処理のサポートを導入し、Apache Tomcat 7 は Java Servlet 3.0 を実装しているため、そこで非同期処理をサポートしています。
Mobicents Sip Servlets 2.x (http://www.mobicents.org/products_sip_servlets.html) プラットフォームは既に Tomcat 7 と統合されていますが、チームは JBoss AS 7 との統合に取り組んでいます。つまり、統合された HTTP/SIP アプリケーションMSS 2.x プラットフォームで実行されている場合、非同期処理サポートの恩恵を受けることができます。非同期処理のサポートを利用する統合 HTTP/SIP アプリケーションの例をここで見ることができます。
Java Servlet 3.0 非同期サポートが提供するのは、リソースが使用可能になるのを待っている間、またはイベントを待っている間に要求をキューに入れ、元のスレッドをリサイクルして新しいクライアントが利用できるようにする方法です。リクエストがキューに入っている間、このために Web サーバー スレッドが消費されることはありません。これは、使用可能な Web サーバー スレッドを処理するためのより効率的な方法です。
したがって、あなたの質問については、統合されたアプリケーションは、SIP INVITE や SIP BYE などの特定の SIP メッセージを待機し、必要に応じて動作します。この図に Java Servlets 3.0 非同期処理を追加すると、高価な AJAX ポーリング メカニズムや独自の API を使用せずに、SIP メッセージごとに更新できるユーザー インターフェイス (クライアントの Web ページ) を作成できます。これは、SIP メッセージを待っている間にクライアントの要求をキューに入れることで発生し、元のスレッドが解放されます。新しい SIP メッセージが発生すると、応答がクライアントに送信されます。
それが助けになることを願った。