Nettyの実用的なステップアップ

1196 ワード

Nettyとは
Nettyは、高性能で拡張性の高い非同期イベント駆動のネットワークアプリケーションフレームワークです.簡単に言えば、NettyはJavaのNIOをカプセル化し、簡単に書くことができ、効率的で信頼できるコードです.
なぜNettyを使うのか
Javaネイティブが提供するAPIに対して、1、ネイティブAPIは複雑で、バグの数が少し多いという問題があります.2、BIOとNIOはマルチスレッドを熟知する必要があり、これは学生たちがマルチスレッドを熟知する必要がある.3、NIOの中のReactorsをマスターするのは難しいです.プログラミングの豊富な経験がなければ、穴がたくさんあるかもしれません.
NettyはTCPとUDPクライアントとサーバ側の開発を大幅に簡素化した.
Nettyプログラミングを紹介する前に、概念ブロックと非ブロックブロックブロックを見てみましょう.ブロックは要求を開始し、呼び出し者は要求結果が戻るのを待っています.つまり、現在のスレッドが保留され、他のタスクに従事できません.条件が整ってから続行できます.
**   :**            ,             ,         

同期と非同期同期同期:同期とは、呼び出しが開始された後、呼び出し元が要求を処理しないまで、呼び出しは返されません.
**  :**            ,                   ,             ,             ,          ,                。

BIO (Blocking I/O)
同期ブロックI/Oモードでは、データの読み込み書き込みが1スレッド内でブロックされて完了を待つ必要があります.1.初期バージョンBIOはsocket.accept()、 socket.read()、 socket.write()はいずれも同期ブロックなので,一度に1つのスレッドしか処理できず,順番に応答クライアントに戻ることでスレッド破棄を行う.2.改良版BIOこのバージョンでは、同期ブロックを解決するためにマルチスレッドが導入されています.
NIO(Non-blocking)NIOは同期非ブロックI/Oモデルで、Java 1.4にNIOフレームワークを導入し、java.nioパッケージに対応し、Channel、Selector、Bufferなどの抽象を提供している.NIOにはNewIOという人もいる
NIOの3つのコアコンポーネント1.Buffer(バッファ)2.チャンネル3.Selectors(セレクタ)