1

HTTP リクエストを処理するために、Netty フレームワークを使用してリアルタイム システムを構築しました。サービスへの呼び出しの 20 % は本質的にロング ポーリングであり、ほとんどの場合 55 秒後に応答します。

負荷が増加するにつれて、応答時間は徐々に増加し、高負荷状態 (20000 の長いポーリング接続と 10000 の短いポーリング接続が確立されている) では、応答時間は 5 秒を超えます。

netty サーバーレベルでリクエストが遅延していることを確認しました。他のすべての要因 (クライアント、Nginx、サーバーのビジネス ロジック) は、問題がないことが確認されています。ビジネス ロジックを完全に削除して、テストを実行することさえ試みました。それでも結果は同じでした。

そのような負荷を処理するように Netty を調整する方法について、誰かが光を当てることができますか。

シヴァ。

4

1 に答える 1

1

この 20% のリクエストの処理をパイプラインの ExecutionHandler の背後にまだ置いていないようです。その場合、ワーカー スレッドは待機状態になり、新しい要求を処理できません。ただし、すぐに処理できるリクエストがその ExecutionHandler の前に処理されるようにすることはできます。

org.jboss.netty.handler.execution.ExecutionHandler

于 2012-04-25T08:06:44.527 に答える