拆书-《netty实战》

Posted 智猿其说

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了拆书-《netty实战》相关的知识,希望对你有一定的参考价值。

Netty是一款异步的事件驱动的网络应用程序框架,支持快速地开发可维护的高性能的面向协议的服务器和客户端。


一 异步和事件驱动


1.1 阻塞io(bio)

每个网络请求都需要独立的线程完成数据的读操作、业务处理、写操作。当并发量大时,需要创建大量线程来处理网络连接,系统资源占用大,连接建立后,如果没有数据需要读,则线程阻塞在读操作上,造成资源浪费。


1.2 非阻塞io(nio)

拆书-《netty实战》

i/o复用模型中,用到了selector,它也会阻塞,但是和阻塞i/o不同的是,selector会阻塞多个i/o的读写操作,直到某个i/o有数据可读或可写时,才会真正调用i/o操作函数。

由于读写操作都是非阻塞的,一个i/o线程可以处理多个客户端连接和读写操作,这就可以提高i/o线程的运行效率,避免频繁i/o阻塞导致的线程挂起。


1.3 netty的io模型

拆书-《netty实战》

 
   
   
 
EventLoopGroup bossGroup = new NioEventLoopGroup();
EventLoopGroup workerGroup = new NioEventLoopGroup();
ServerBootstrap server = new ServerBootstrap();
server.group(bossGroup, workerGroup)

以上是关于拆书-《netty实战》的主要内容,如果未能解决你的问题,请参考以下文章

Netty系列三Netty实战篇

干货 |《从Lucene到Elasticsearch全文检索实战》拆解实践

干货 |《从Lucene到Elasticsearch全文检索实战》拆解实践

Netty实战九之单元测试

Netty实战三之Netty的组件和设计

netty 实战 – netty client 连接池设计