写点什么

阿里巴巴的 Netty 面试题到底有多难,这些知识你能掌握多少?

用户头像
周老师
关注
发布于: 2 小时前

前言


Netty 是一个可以快速开发网络应用程序的 NIO 框架,它大大简化了 TCP 或者 UDP 服务器的网络编程。Netty 的简易和快速开发并不意味着由它开发的程序将失去可维护性或者存在性能问题,它的设计参考了许多协议的实现,比如 FTP,SMTP,HTTP 和各种二进制和基于文本的传统协议,因此 Netty 成功的实现了兼顾快速开发,性能,稳定性,灵活性为一体,不需要为了考虑一方面原因而妥协其他方面。Netty 的应用还是比较广泛的,比如阿里巴巴开源的 Dubbo 和 Sofa-Bolt 框架底层网络通讯都是基于 Netty 来实现的。

通过本文所说到的关于 netty 的学习问题和面试问题来说说如何学习高性能 netty 框架及一些重要知识点!

Netty 基础相关问题

  1. 讲讲 Netty 的特点?

  2. BIO、NIO 和 AIO 的区别?

  3. NIO 的组成是什么?

  4. 如何使用 Java NIO 搭建简单的客户端与服务端实现网络通讯?

  5. 如何使用 Netty 搭建简单的客户端与服务端实现网络通讯?

  6. 讲讲 Netty 底层操作与 Java NIO 操作对应关系?

  7. Channel 与 Socket 是什么关系,Channel 与 EventLoop 是什么关系,Channel 与 ChannelPipeline 是什么关系?

  8. EventLoop 与 EventLoopGroup 是什么关系?

  9. 说说 Netty 中几个重要的对象是什么,它们之间的关系是什么?

  10. Netty 的线程模型是什么?

粘包与半包和分隔符相关问题

  1. 什么是粘包与半包问题?

  2. 粘包与半包为何会出现?

  3. 如何避免粘包与半包问题?

  4. 如何使用包定长 FixedLengthFrameDecoder 解决粘包与半包问题?原理是什么?

  5. 如何使用包分隔符 DelimiterBasedFrameDecoder 解决粘包与半包问题?原理是什么?

  6. Dubbo 在使用 Netty 作为网络通讯时候是如何避免粘包与半包问题?

  7. Netty 框架本身存在粘包半包问题?

  8. 什么时候需要考虑粘包与半包问题?

WebSocket 协议开发相关问题

  1. 讲讲如何实现 WebSocket 长连接?

  2. 讲讲 WebSocket 帧结构的理解?

  3. 浏览器、服务器对 WebSocket 的支持情况

  4. 如何使用 WebSocket 接收和发送广本信息?

  5. 如何使用 WebSocket 接收和发送二进制信息?

Netty 源码分析相关问题

  1. 服务端如何进行初始化?

  2. 何时接受客户端请求?

  3. 何时注册接受 Socket 并注册到对应的 EventLoop 管理的 Selector ?

  4. 客户端如何进行初始化?

  5. 何时创建的 DefaultChannelPipeline ?

  6. 讲讲 Netty 的零拷贝?

如何正确系统的学习 Netty 框架

要理解框架的底层的原理,要掌握的就是最常用的原理。框架就是辅助我们开发的已经完成的一部分代码,帮助我们实现了一部分的功能,我们主要掌握的其实就是框架的内部原理,也就是框架给我们规定的一些内部的规定,有了这些规定就可以高效的开发我们的代码,按照规定办事效率会有很大的提高。其实很多的时候我们并没有注意这些东西,一个功能可以用很多的方法来实现,但是我们按照框架给我们规定的规则去实现的话应该是我们比较正确的一种选择。因此分享一份系统学习 Netty 框架的知识思维导图给有需要的朋友,希望能对你们有所帮助!


最全 Netty 实战整理

关于 Netty 相关所以知识点有非常全面的讲解(建议可以看看)

  1. Neth 的概令及体系结构

  2. 编解码器

  3. 网络协议

  4. 案例研究



Netty 面试答案全解

Netty 面试答案全解,大厂面试题答案整理


最后针对思维导图,小编根据多年的经验也整理了一套视频资料、面试答案

(包括 Kafka、Mysql、Tomcat、Docker、MyBatis、Nginx、Netty、Dubbo、Redis、Spring cloud、分布式、高并发、性能调优、微服务)

欢迎大家扫码来关注公众号博主,获取文章全部资料,此公众号会持续更新技术干货、不定期分享 Java 进阶面试宝典、Java 核心知识、架构书籍电子版


用户头像

周老师

关注

精通java热衷于分享java领域资料,感谢支持 2020.06.09 加入

还未添加个人简介

评论

发布
暂无评论
阿里巴巴的Netty面试题到底有多难,这些知识你能掌握多少?