Netty面试题大全

news/2025/1/15 18:05:46/

Netty面试题大全


目录

文档索引

面试题汇总

Q:Netty是什么?为什么需要Netty?

Q:Netty为什么性能高?

Q:Netty有哪些组件?

Q:Netty如何解决半包读写问题?

Q:Netty如何解决断连重连问题?


文档索引


面试题汇总

Q:Netty是什么?为什么需要Netty?

A: Netty时异步事件驱动的网络应用程序框架

NIO使用麻烦,且客户端面临断连重连、网络闪断、半包读写、失败缓冲、网络拥塞和异常流的处理等等;Netty对JDK自带的NIO的API进行封装,使用方便,解决了上述问题

在分布式系统中,各个节点之间需要远程服务调用,Netty往往作为基础通信组件被这些RPC框架使用。比如Dubbo、RocketMQ、Seata、Hadoop、Avro

Q:Netty为什么性能高?

A: 

1、高效的Reactor线程模型

2、高性能序列化协议,支持protobuf等高性能序列化协议

3、使用零拷贝

4、无锁化的串行设计理念

5、灵活的TCP参数配置能力

6、使用内存池

Q:Netty有哪些组件?

A: 

Q:Netty如何解决半包读写问题?

A: Netty的拆包器大致如下:

1、固定长度的拆包器 FixedLengthFrameDecoder

每个应用层数据包都拆分成固定长度大小

2、行拆包器 LineBasedFrameDecoder

每个应用层数据包,都通过换行符作为分隔符,进行分割拆分

3、分隔符拆包器 DelimiterBasedFrameDecoder

每个应用层数据包,都通过自定义的分隔符,进行分割拆分

4、基于数据包长度的拆包器 LengthFieldBasedFrameDecoder

将应用层数据包的长度,作为接收端应用层数据包的拆分依据。按照应用层数据包的大小,拆包。拆包器需要求应用层协议中包含数据包的长度

Q:Netty如何解决断连重连问题?

A: Netty中提供了一个IdleStateHandle类用于心跳检测,用法如下:

ch.pipeline().addLast("ping", new IdleStateHandler(60, 20, 60 * 10, TimeUnit.SECONDS));

第一个参数 60 表示读操作空闲时间

第二个参数 20 表示写操作空闲时间

第三个参数 60 * 10 表示读写操作空闲时间

第四个参数 单元 秒

通过心跳检测机制,可以检测客户端与服务的长连接是否保持,当客户端发送的心跳包没有收到服务端的响应时,可以认为服务端已经出故障了,这个时候可以重新连接或者选择其他的可用的服务进行连接


http://www.ppmy.cn/news/7371.html

相关文章

ESP8266 WIFI模块的使用

ESP8266 wiFI 可以用作连接周边的无线设备,也可以作为发送器供其他设备连接通常在产品中,我们经常用作无线的接收使用,也可能会用作在线升级使用等。 说点题外话:虽然在线升级已经较为成熟,但我不推荐在一些重要的产品…

C# 并行编程

一 并行任务库TPL 1 并行任务库(TPL,Task Parallel Library) 2 最重要的是Task类,还有Parallel类 3 Task类,是利用线程池来进行任务的执行 比如直接用ThreadPool更优化,而且编程更方便 4 Paallel类&…

[01] 两整数之和

371 两整数之和题目给你两个整数 a 和 b ,不使用 运算符 和 - ​​​​​​​,计算并返回两整数之和。题解思路魔鬼细节细节一解析细节二解析细节三解析细节四解析代码循环写法递归写法参考题解题目 给你两个整数 a 和 b ,不使用 运算符 和…

Python爬虫进行正则数据解析实战

今天继续给大家介绍Python爬虫相关知识,本文主要内容是Python爬虫进行正则数据解析实战。 一、需求分析 今天,我们尝试使用re正则表达式来对爬取到的页面进行数据解析。需求如下: 针对网页:https://blog.csdn.net/weixin_402282…

不懂PO 设计模式?这篇实战文带你搞定 PO

1080442 73.1 KB 为UI页面写测试用例时(比如web页面,移动端页面),测试用例会存在大量元素和操作细节。当UI变化时,测试用例也要跟着变化, PageObject 很好的解决了这个问题! 使用UI自动化测试工…

python:什么?你听MP3居然还要付费?看我一键......

前言 大家早好、午好、晚好吖 ❤ ~ 在我们上班空闲\游玩\散步的时候,总会习惯的拿出手机放首音乐来听一听 但是吧,有时候我们听一首歌起劲的时候,它会你提醒你 这时候怎么办呢?通常我们是下一首,或者充值 但是手头不宽裕但又想听怎么办? …

44. 含并行连结的网络(GoogLeNet)

GoogLeNet吸收了NiN中串联网络的思想,并在此基础上做了改进。 这篇论文的一个重点是解决了什么样大小的卷积核最合适的问题。 毕竟,以前流行的网络使用小到1 * 1,大到11 * 11的卷积核。 本文的一个观点是,有时使用不同大小的卷积…

Unity Recorder的使用讲解

Unity Recorder的使用讲解使用目的插件下载插件位置窗口基本介绍基本设置选项录制列表Animation Clip参数讲解Movie 电影模式参数介绍SourceGameViewTargeted Camera360ViewRender Texture AssetOutPut ReslutionInclude AudioFlip VerticalTexture SamplingFormatMedia File F…