拆书-《netty实战》
Posted 智猿其说
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了拆书-《netty实战》相关的知识,希望对你有一定的参考价值。
Netty是一款异步的事件驱动的网络应用程序框架,支持快速地开发可维护的高性能的面向协议的服务器和客户端。
一 异步和事件驱动
1.1 阻塞io(bio)
每个网络请求都需要独立的线程完成数据的读操作、业务处理、写操作。当并发量大时,需要创建大量线程来处理网络连接,系统资源占用大,连接建立后,如果没有数据需要读,则线程阻塞在读操作上,造成资源浪费。
1.2 非阻塞io(nio)
i/o复用模型中,用到了selector,它也会阻塞,但是和阻塞i/o不同的是,selector会阻塞多个i/o的读写操作,直到某个i/o有数据可读或可写时,才会真正调用i/o操作函数。
由于读写操作都是非阻塞的,一个i/o线程可以处理多个客户端连接和读写操作,这就可以提高i/o线程的运行效率,避免频繁i/o阻塞导致的线程挂起。
1.3 netty的io模型
EventLoopGroup bossGroup = new NioEventLoopGroup();
EventLoopGroup workerGroup = new NioEventLoopGroup();
ServerBootstrap server = new ServerBootstrap();
server.group(bossGroup, workerGroup)
以上是关于拆书-《netty实战》的主要内容,如果未能解决你的问题,请参考以下文章
干货 |《从Lucene到Elasticsearch全文检索实战》拆解实践