大厂面试题-Netty是什么,为什么要使用Netty?

1、Netty是什么

一句话总结,Netty就是一个基于Java NIO封装的高性能的网络通信框架。从以下三个方面归纳一下:

1、Netty提供了比NIO更简单易用的API,我们可以利用这些封装好的API快速开发自己的网络通信程序。

2、Netty在NIO的基础上还做了很多优化,比如零拷贝机制、内存池管理等等,因此,总体运行性能会比原生的NIO更高。

3、Netty内置支持了多种通信协议,如HTTP、WebSocket等,并且针对数据通信的拆包、黏包问题,Netty还内置了解决方案。

2、为什么要用Netty?

Netty相比于直接使Java原生NIO的API来说,选择Netty具备以下优势:

1、Netty提供统一的API,支持多种通信模型,如阻塞、非阻塞,以及epoll、poll等模型。

2、Netty可以使用很少的代码实现Reactor多线程模型以及主从线程模型。

3、可以使用自带的编解码器解决TCP拆包/粘包问题。

4、Netty默认提供了多协议的通信支持。

5、Netty处理高吞吐量、低延迟、低资源消耗,比Java原生NIO的API更有优势。

6、经典的开源项目底层也使用到了Netty通信框架,比如Zookeeper、Dubbo、RocketMQ等等,经历了大型项目的使用和考验更加成熟稳定。

相关推荐
卓怡学长7 小时前
w202springboot基于B_S架构的图书信息管理系统
java·spring boot·spring·intellij-idea
Bruce_Liuxiaowei7 小时前
Python 字典默认值完全指南:从 KeyError 到 defaultdict
开发语言·数据结构·python·字典
走到天涯海角7 小时前
用springBoot写几个简单的接口
java·spring boot·intellij-idea
troy1287 小时前
Java 技术栈全景指南:从基础到微服务的完整知识体系
java·开发语言·微服务
Escalating_xu7 小时前
【C 语言】深入理解指针(2):数组名、数组传参、二级指针与指针数组
java·c语言·开发语言
郝学胜-神的一滴7 小时前
游戏引擎原理与实践 01:聊聊游戏引擎的前世今生
开发语言·c++·游戏引擎·产品运营·软件工程·产品经理·untiy
景熙55237 小时前
JDBC 详解:从原理到实战(含完整可运行 Demo)
java·spring·tomcat·mybatis·jdbc
程序猿乐锅8 小时前
一文讲透缓存穿透、击穿和雪崩
java·redis·spring·缓存·mybatis
bkspiderx8 小时前
Qt 的消息机制:事件驱动与信号槽的底层逻辑
开发语言·qt·信号槽·事件驱动·qt 的消息机制
xcl09258 小时前
西安同城货运系统源码开发实战 核心功能实现与部署全指南
java·spring boot