哈嘍!大家好,我是小奇,一位熱愛分享的程式設計師
小奇打算以輕鬆幽默的對話方式來分享一些技術,如果你覺得通過小奇的文章學到了東西,那就給小奇一個贊吧
文章持續更新
一、前言
書接上回,昨天在地裡幹了一天的活,累壞我了,今天是個週末,我得去鎮上買點好吃的然後宅家歇上一天,打打遊戲,看看電視劇,嘛錢不錢的,樂呵樂呵得了。。。
首當其衝必須買點熟食,回去再喝上二兩小酒,美滋滋。
今天正好碰上鎮上趕集,人真多呀,小奇最喜歡湊熱鬧了,擠一波。
週末宅家水果必須得整點,不然光吃零食上火,砂糖橘必須炫上,多買點跟老闆砍砍價。
我:老闆這砂糖橘怎麼賣啊!
老闆:六塊錢一斤。
我:我要多要點能便宜點不。
老闆:你要多少嘞!
我:三斤!!!
老闆:那你就給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吧”。
面試官:“喂,你說什麼我聽不見,訊號不好。。。”
我:“喂喂喂”(嘟嘟嘟嘟嘟嘟嘟嘟。。。)。
三、總結
這裡的相關內容還沒有整理完畢,文章後面持續更新,建議收藏。
文章中涉及到的命令大家一定要像我一樣每個都敲幾遍,只有在敲的過程中才能發現自己對命令是否真正的掌握了。
如果覺得我的文章還不錯的話就點個贊吧