一、前言哈喽!大家好,我是小奇,一位热爱分享的程序员
小奇打算以轻松幽默的对话方式来分享一些技术,如果你觉得通过小奇的文章学到了东西,那就给小奇一个赞吧
文章持续更新
书接上回,昨天在地里干了一天的活,累坏我了,今天是个周末,我得去镇上买点好吃的然后宅家歇上一天,打打游戏,看看电视剧,嘛钱不钱的,乐呵乐呵得了。。。
首当其冲必须买点熟食,回去再喝上二两小酒,美滋滋。
今天正好碰上镇上赶集,人真多呀,小奇最喜欢凑热闹了,挤一波。
周末宅家水果必须得整点,不然光吃零食上火,砂糖橘必须炫上,多买点跟老板砍砍价。
我:老板这砂糖橘怎么卖啊!
老板:六块钱一斤。
我:我要多要点能便宜点不。
老板:你要多少嘞!
我:三斤!!!
老板:那你就给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吧”。
面试官:“喂,你说什么我听不见,信号不好。。。”
三、总结我:“喂喂喂”(嘟嘟嘟嘟嘟嘟嘟嘟。。。)。
这里的相关内容还没有整理完毕,文章后面持续更新,建议收藏。
文章中涉及到的命令大家一定要像我一样每个都敲几遍,只有在敲的过程中才能发现自己对命令是否真正的掌握了。
如果觉得我的文章还不错的话就点个赞吧