netty面试总结
Netty总结
1netty是啥?
netty是基于NIO实现的高性能网络框架
netty简化了tcp,udp的网络编程,并且在性能上和安全性上更高
netty支持多种网络谢谢
2 netty使用场景
1自己实现http服务器
2rpc远程调度
3及时通讯系统
3netty核心组件有哪些
Channel 是对网络操作的抽象类
ChanenlFuture
EventLoop 负责监听网络事件并调用事件处理器进行相关的io操作
ChannelHandeler 消息具体处理器,负责读写操作和客户端连接
ChannelPipeline 是由ChannelHandler 组成的链。一般Channel 创建出来会传到对应的链上。
4Bootstrap 和 ServerBootstrap 了解么?
ServerBootstrap是服务端的引导了,使用bind方法去监听一个端口,需要配置两个线程组,一般为worker线程组负责具体处理和boss线程组负责接收连接
Bootstrap是客户端的引导类,需要监听远程服务的地址和端口,只需要配置一个线程组。
5什么是 TCP 粘包/拆包?有什么解决办法呢?
基于tcp传输数据的时候,字符串无法保证完整
1使用netty自带的解码器
2自定义序列化编解码器
6什么是netty零拷贝
1使用netty提供的compositebytebuf类,可以将多个bytebuf合并
2bytebuf支持slice操作,可以分解为多个共享的同一个区域的bytebuf
3通过FileRegion 包装FileChannel.tranferTo 实现文件传输,可以将文件缓冲区的数据发现目标Channel