Java知识分享网 - 轻松学习从此开始!    

Java知识分享网

Java1234官方群25:java1234官方群17
Java1234官方群25:838462530
        
SpringBoot+SpringSecurity+Vue+ElementPlus权限系统实战课程 震撼发布        

最新Java全栈就业实战课程(免费)

springcloud分布式电商秒杀实战课程

IDEA永久激活

66套java实战课程无套路领取

锋哥开始收Java学员啦!

Python学习路线图

锋哥开始收Java学员啦!

Netty 常见面试题总结 PDF 下载


分享到:
时间:2023-02-20 10:59来源:http://www.java1234.com 作者:转载  侵权举报
Netty 常见面试题总结 PDF 下载
失效链接处理
Netty 常见面试题总结 PDF 下载


本站整理下载:
提取码:3l65 
 
 
相关截图:
 
主要内容:
 
很多⼩伙伴搞不清楚为啥要学习 Netty ,正式今天这篇⽂章开始之前,简单说⼀下⾃
⼰的看法:
Netty 基于 NIO (NIO 是⼀种同步⾮阻塞的 I/O 模型,在 Java 1.4 中引⼊了 NIO
),使⽤ Netty 可以极⼤地简化 TCP 和 UDP 套接字服务器等⽹络编程,并且性
能以及安全性等很多⽅⾯都⾮常优秀。
我们平常经常接触的 Dubbo、RocketMQ、Elasticsearch、gRPC、Spark 等等
热⻔开源项⽬都⽤到了 Netty。
⼤部分微服务框架底层涉及到⽹络通信的部分都是基于 Netty 来做的,⽐如说
Spring Cloud ⽣态系统中的⽹关 Spring Cloud Gateway。
简单总结⼀下和 Netty 相关问题。
⾯试官 :先来简单介绍⼀下 BIO,NIO 和 AIO 3 者的区别吧!
我 :好的!
BIO (Blocking I/O): 同步阻塞 I/O 模式,数据的读取写⼊必须阻塞在⼀个线程内
等待其完成。在客户端连接数量不⾼的情况下,是没问题的。但是,当⾯对⼗万
甚⾄百万级连接的时候,传统的 BIO 模型是⽆能为⼒的。因此,我们需要⼀种更
⾼效的 I/O 处理模型来应对更⾼的并发量。
NIO (Non-blocking/New I/O): NIO 是⼀种同步⾮阻塞的 I/O 模型,于 Java 1.4
中引⼊,对应 java.nio 包,提供了 Channel , Selector , Buffer
等抽象。NIO 中的 N 可以理解为 Non-blocking,不单纯是 New。它⽀持⾯向缓
冲的,基于通道的 I/O 操作⽅法。 NIO 提供了与传统 BIO 模型中的 Socket
和 ServerSocket 相对应的 SocketChannel 和 ServerSocketChann
el 两种不同的套接字通道实现,两种通道都⽀持阻塞和⾮阻塞两种模式。对于⾼
负载、⾼并发的(⽹络)应⽤,应使⽤ NIO 的⾮阻塞模式来开发
AIO (Asynchronous I/O): AIO 也就是 NIO 2。在 Java 7 中引⼊了 NIO 的改进版
NIO 2,它是异步⾮阻塞的 IO 模型。异步 IO 是基于事件和回调机制实现的,也就
是应⽤操作之后会直接返回,不会堵塞在那⾥,当后台处理完成,操作系统会通
知相应的线程进⾏后续的操作。AIO 是异步 IO 的缩写,虽然 NIO 在⽹络操作中,
提供了⾮阻塞的⽅法,但是 NIO 的 IO ⾏为还是同步的。对于 NIO 来说,我们的
业务线程是在 IO 操作准备好时,得到通知,接着就由这个线程⾃⾏进⾏ IO 操
作,IO 操作本身是同步的。查阅⽹上相关资料,我发现就⽬前来说 AIO 的应⽤还
不是很⼴泛,Netty 之前也尝试使⽤过 AIO,不过⼜放弃了。

------分隔线----------------------------

锋哥公众号


锋哥微信


关注公众号
【Java资料站】
回复 666
获取 
66套java
从菜鸡到大神
项目实战课程

锋哥推荐