大厂面试题-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等等,经历了大型项目的使用和考验更加成熟稳定。

相关推荐
day3ZY25 分钟前
清理C盘缓存,电脑缓存清理怎么一键删除,操作简单的教程
c语言·开发语言·缓存
学地理的小胖砸37 分钟前
【高分系列卫星简介】
开发语言·数码相机·算法·遥感·地理信息
码农豆豆39 分钟前
4.C++中程序中的命名空间
开发语言·c++
怀九日42 分钟前
C++(学习)2024.9.19
开发语言·c++·学习·重构·对象·
希忘auto1 小时前
Java之线程篇四
java
蓝黑20201 小时前
Java知识点小结3:内存回收
java·gc
KookeeyLena81 小时前
如何限制任何爬虫爬取网站的图片
开发语言·c++·爬虫
yanyanwenmeng1 小时前
matlab基础
开发语言·算法·matlab
Yz98761 小时前
Hadoop里面MapReduce的序列化与Java序列化比较
java·大数据·jvm·hadoop·分布式·mapreduce·big data
凯哥Java1 小时前
优化批处理流程:自定义BatchProcessorUtils的设计与应用
java·数据库·mysql