Netty实战读书笔记(第一章概念梳理)

Netty是一个由事件驱动的java异步I/O高性能网络通信框架,在java中,提供网络通信的JDK主要有I/O、NIO、AIO。I/O主要是同步阻塞的网络通信协议,NIO(No-blocking I/O)提供非阻塞的读写操作,又因为非阻塞,所以可提供异步操作,NIO一般可当做异步I/O。AIO是jdk1.7中引入的异步I/O操作,客户端的请求都是通过OS完成了I/O操作之后,再交由服务器处理启动线程处理。Netty和Mina都是作为高性能网络通信框架,tomcat和jetty作为容器,可能使用到这两个通信框架(需要处理请求和分布式通信)。

Netty 与 JDK:1 , Netty将网络通信与应用处理解耦(网络通信和业务解耦)。2 , 使用Netty比使用底层JDK方便,在JDK NIO上做了封装。3 , 模块化和可复用性。

I/O操作: 一个客户端请求需要一个处理线程,该线程一直处于阻塞状态,浪费子线程资源。每个线程需要内存,当有大量线程处理并发请求时,需要JVM虚拟机需要支持大量线程,这些线程上下文切换需要花费大量资源。


NIO:通过channel处理请求,将channel注册进selector,之后selector线程处理channel中的请求,通过选择器可以使用较少的线程监听连接channel上的事件。异步方法会立即返回,并且在它完成时,会直接或者在稍后的某个时间点通知用户,会有回调函数。


netty采用者:http://netty.io/wiki/adopters.html。Netty实现了基于FTP、SMTP、HTTP、webSocket以及其他基于二进制和文本的协议。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值