面试官:Netty心跳检测机制是什么,怎么自定义检测间隔时间?

哈喽!大家好,我是小奇,一位热爱分享的程序员
小奇打算以轻松幽默的对话方式来分享一些技术,如果你觉得通过小奇的文章学到了东西,那就给小奇一个赞吧
文章持续更新

一、前言

书接上回,昨天在地里干了一天的活,累坏我了,今天是个周末,我得去镇上买点好吃的然后宅家歇上一天,打打游戏,看看电视剧,嘛钱不钱的,乐呵乐呵得了。。。

首当其冲必须买点熟食,回去再喝上二两小酒,美滋滋。

在这里插入图片描述

今天正好碰上镇上赶集,人真多呀,小奇最喜欢凑热闹了,挤一波。

在这里插入图片描述

周末宅家水果必须得整点,不然光吃零食上火,砂糖橘必须炫上,多买点跟老板砍砍价。

在这里插入图片描述

我:老板这砂糖橘怎么卖啊!

老板:六块钱一斤。

我:我要多要点能便宜点不。

老板:你要多少嘞!

我:三斤!!!

老板:那你就给20块钱吧。

我:???我没听错吧,六块钱一斤,三斤20怎么还贵了呢。

老板:哎呀你反应过来了啊,看你蔫了吧唧的以为你转不过弯呢。

我:靠,我好歹也是经历过九年义务教育的好吧,三斤15块钱好吧,给我装起来。

买完了骑上我的小三轮肥家。

在这里插入图片描述

就在我漂移在乡间小路上的时候,我的手机突然响了。。。

我:“喂您好”。

对面:“您好,请问是小奇吗”。

我:“是我,你是?”。

对面:“我是XXX公司的,我看到hr推给我你的简历,我感觉还不错,你什么时候方便来现场面试一下”。

我:“现在不方便现场面试了”。

对面:“好吧,那你现在方便吗?我们现在线上面试一下吧”。

我:“好的”。

二、面试

面试官:我看你简历上写的精通Netty,那你能说一下Netty怎么保证能够长时间连接呢?

我:通过心跳检测机制来判断Netty是否正常连接。

面试官:什么是心跳检测机制呢?

我:比如医生怎么知道你的心脏是否正常运作呢,肯定是心脏在以一定的频率跳动,医生通过监听器监听到了跳动就知道你的心脏是好的。

所以在Netty中也是一样的,客户端和服务端怎么知道对方是否还在正常运行呢,就是对方定期向自己发送一条消息,这样的话我就知道对方还在正常运行,后续有活要干的话我就可以直接发给对方让对方处理。

相反如果服务端长时间没有给客户端发送心跳,那么客户端可以认为服务端死亡,后面再有读写请求就不会发送给相应的服务端了。

面试官:如果我想自定义心跳检测的时间间隔怎么实现?

我:可以实现IdleStateHandler()方法

public IdleStateHandler(int readerIdleTimeSeconds, int writerIdleTimeSeconds, int allIdleTimeSeconds) {
  this((long)readerIdleTimeSeconds, (long)writerIdleTimeSeconds, (long)allIdleTimeSeconds, TimeUnit.SECONDS);
 }

面试官:这里的三个参数是什么意思,间隔的时间单位是多少?

方法里有三个参数,默认时间都是秒

readerIdleTimeSeconds:读超时,当在指定的时间间隔内没有读取到数据就会超时。

writerIdleTimeSeconds:写超时,当在指定的时间间隔内没有写入成功就会超时。

allIdleTimeSeconds:读/.写超时,当在指定的时间间隔内没有读或写操作的时候,就会超时。

面试官:“小伙子不错呀,什么时候能回北京入职呢”

我:“额。。。等等吧,现在还有好多家公司等着谈薪资呢,我得挑一家合适的。”

面试官:“你要多少我都给你,来我这吧”

我:“额。。。那就月薪100个W吧”。

面试官:“喂,你说什么我听不见,信号不好。。。”

我:“喂喂喂”(嘟嘟嘟嘟嘟嘟嘟嘟。。。)。

三、总结

这里的相关内容还没有整理完毕,文章后面持续更新,建议收藏。

文章中涉及到的命令大家一定要像我一样每个都敲几遍,只有在敲的过程中才能发现自己对命令是否真正的掌握了。

如果觉得我的文章还不错的话就点个赞吧

posted @ 2022-05-31 07:45  旷世奇才927  阅读(580)  评论(1编辑  收藏  举报