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

相关推荐
吴声子夜歌10 小时前
ApacheCommons——commons-pool2(高性能通用对象池框架)
java·开发语言·apache
kruptos15 小时前
分布式系统怎么“选主“?Raft 共识一次讲清
开发语言·分布式·php·共识算法
xcl092515 小时前
幼儿托育系统开发实战:从需求分析到上线全流程指南
java·大数据·需求分析
吴声子夜歌15 小时前
ApacheCommons——commons-cli(命令行参数解析)
java·开发语言·apache
小小猪的春天15 小时前
Java 手写第一个 MCP Server:Spring AI MCP 半小时跑通
java·人工智能·spring boot·ai编程
find1star15 小时前
LeetCode 141:环形链表
java·算法·leetcode·链表
今天AI了吗16 小时前
DeepSeek Harness 深度解析:从评测架构到实战落地
java·网络·数据库·人工智能·架构·java-ee
benchmark_cc16 小时前
REST API 和 Python SDK 应该怎么选?量化交易数据接口选型实战
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
王的宝库16 小时前
Go 项目结构:从单文件到标准工程布局
开发语言·后端·golang
Tairitsu_H16 小时前
[C++] 深入理解红黑树:封装set与map
开发语言·c++·set·map·红黑树·模拟实现