3

netty がどのように機能するかを理解しようとしています。いくつかのドキュメントを読んだ後、高レベルで物事がどのように機能するかを理解しているかどうかを確認しました。

基本的に netty にはイベント サイクルがあるため、呼び出すたびにシリアル化され、リクエストが o/s レベルにプッシュされ、epoll を使用してイベントが netty に送り返されるのを待ちます。

オペレーティング システムが netty がサブスクライブするイベントを生成すると、netty にはトリガーされるイベント ループがあります。

ここで重要なのは、トリガーされるイベントを解析する必要があり、クライアント コード (またはカスタム コード) は、このイベントが実際に誰のためのものであるかを把握する必要があるということです。

たとえば、これがチャット アプリケーションの場合、メッセージが送信されたときに、このメッセージを ajax 経由で正しいユーザーに送信するかどうかを判断するのはクライアント コードです。

これは、高レベルで、netty がどのように機能するかの正しい概要ですか?

ところで、netty が epoll 経由で送信されたイベントをリッスンする場合、このイベント ループはシングル スレッドですか、それともスレッドのプールから動作しますか?

4

1 に答える 1

3

私には正しいように聞こえます。

Netty には複数のイベント ループ スレッドがありますが、1 つのチャネルのイベントが複数のイベント ループ スレッドによって処理されるわけではありません。Netty はスレッドを 1 つ選び、それをチャネルに割り当てます。割り当てられると、チャネルに関連するすべてのイベントが、選択されたスレッドによって処理されます。

また、イベント ループ スレッドが 1 つのチャネルのみを処理するとは限りません。イベント ループ スレッドは、複数のチャネルを処理できます。

于 2012-12-26T04:23:39.417 に答える