天天看點

面試官:Netty心跳檢測機制是什麼,怎麼自定義檢測間隔時間?

文章目錄

  • ​​一、前言​​
  • ​​二、面試​​
  • ​​三、總結​​

一、前言

書接上回,昨天在地裡幹了一天的活,累壞我了,今天是個周末,我得去鎮上買點好吃的然後宅家歇上一天,打打遊戲,看看電視劇,嘛錢不錢的,樂呵樂呵得了。。。

首當其沖必須買點熟食,回去再喝上二兩小酒,美滋滋。

面試官:Netty心跳檢測機制是什麼,怎麼自定義檢測間隔時間?
今天正好碰上鎮上趕集,人真多呀,小奇最喜歡湊熱鬧了,擠一波。
面試官:Netty心跳檢測機制是什麼,怎麼自定義檢測間隔時間?
周末宅家水果必須得整點,不然光吃零食上火,砂糖橘必須炫上,多買點跟老闆砍砍價。
面試官:Netty心跳檢測機制是什麼,怎麼自定義檢測間隔時間?

我:老闆這砂糖橘怎麼賣啊!

老闆:六塊錢一斤。

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

老闆:你要多少嘞!

我:三斤!!!

老闆:那你就給20塊錢吧。

我:???我沒聽錯吧,六塊錢一斤,三斤20怎麼還貴了呢。

老闆:哎呀你反應過來了啊,看你蔫了吧唧的以為你轉不過彎呢。

我:靠,我好歹也是經曆過九年義務教育的好吧,三斤15塊錢好吧,給我裝起來。

買完了騎上我的小三輪肥家。

面試官:Netty心跳檢測機制是什麼,怎麼自定義檢測間隔時間?

就在我漂移在鄉間小路上的時候,我的手機突然響了。。。

我:“喂您好”。

對面:“您好,請問是小奇嗎”。

我:“是我,你是?”。

對面:“我是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吧”。

面試官:“喂,你說什麼我聽不見,信号不好。。。”

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

三、總結

這裡的相關内容還沒有整理完畢,文章後面持續更新,建議收藏。

文章中涉及到的指令大家一定要像我一樣每個都敲幾遍,隻有在敲的過程中才能發現自己對指令是否真正的掌握了。

繼續閱讀