面试官: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吧”。
面试官:“喂,你说什么我听不见,信号不好。。。”
我:“喂喂喂”(嘟嘟嘟嘟嘟嘟嘟嘟。。。)。
三、总结
这里的相关内容还没有整理完毕,文章后面持续更新,建议收藏。
文章中涉及到的命令大家一定要像我一样每个都敲几遍,只有在敲的过程中才能发现自己对命令是否真正的掌握了。
如果觉得我的文章还不错的话就点个赞吧
面试官:Netty心跳检测机制是什么,怎么自定义检测间隔时间?的更多相关文章
- 阿里面试官让我实现一个线程安全并且可以设置过期时间的LRU缓存,我蒙了!
目录 1. LRU 缓存介绍 2. ConcurrentLinkedQueue简单介绍 3. ReadWriteLock简单介绍 4.ScheduledExecutorService 简单介绍 5. ...
- Netty — 心跳检测和断线重连
一.前言 由于在通信层的网络连接的不可靠性,比如:网络闪断,网络抖动等,经常会出现连接断开.这样对于使用长连接的应用而言,当突然高流量冲击势必会造成进行网络连接,从而产生网络堵塞,应用响应速度下降,延 ...
- 聊聊心跳机制及netty心跳实现
我们在使用netty的时候会使用一个参数,ChannelOption.SO_KEEPALIVE为true, 设置好了之后再Linux系统才会对keepalive生效,但是linux里边需要配置几个参数 ...
- U3D-页游-检测机制-webplayer-调试方法
前言 页游目前有两个客户端入口: 网页端 (unity webplayer) 游戏微端 (unity standalone) 关于微端的技术,可参考我之前的文章: dotNet开发游戏微端 游戏微端的 ...
- 阿里系产品Xposed Hook检测机制原理分析
阿里系产品Xposed Hook检测机制原理分析 导语: 在逆向分析android App过程中,我们时常用的用的Java层hook框架就是Xposed Hook框架了.一些应用程序厂商为了保护自家a ...
- 《吊打面试官》系列-Redis哨兵、持久化、主从、手撕LRU
你知道的越多,你不知道的越多 点赞再看,养成习惯 前言 Redis在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在Redis的使用和原理方面对小伙伴们进行360°的刁难.作为一个在互联 ...
- [每日一题]面试官问:谈谈你对ES6的proxy的理解?
[每日一题]面试官问:谈谈你对ES6的proxy的理解? 关注「松宝写代码」,精选好文,每日一题 作者:saucxs | songEagle 一.前言 2020.12.23 日刚立的 flag,每日一 ...
- 【对线面试官】CountDownLatch和CyclicBarrier的区别
<对线面试官>系列目前已经连载31篇啦,这是一个讲人话面试系列 [对线面试官]Java注解 [对线面试官]Java泛型 [对线面试官] Java NIO [对线面试官]Java反射 &am ...
- 【对线面试官】Kafka基础入门
<对线面试官>系列目前已经连载33篇啦,这是一个讲人话面试系列 [对线面试官]Java注解 [对线面试官]Java泛型 [对线面试官] Java NIO [对线面试官]Java反射 &am ...
- 面试官:RabbitMQ过期时间设置、死信队列、延时队列怎么设计?
哈喽!大家好,我是小奇,一位不靠谱的程序员 小奇打算以轻松幽默的对话方式来分享一些技术,如果你觉得通过小奇的文章学到了东西,那就给小奇一个赞吧 文章持续更新 一.前言 RabbitMQ我们经常的使用, ...
随机推荐
- PAT B1024科学计数法
科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式 [+-][1-9].[0-9]+E[+-][0-9]+,即数字的整数部分只有 1 位,小数部分至少有 1 位,该数字及其指 ...
- Node自动重启工具 nodemon
为什么要使用 在编写调试Node.js项目,修改代码后,需要频繁的手动close掉,然后再重新启动,非常繁琐.现在,我们可以使用nodemon这个工具,它的作用是监听代码文件的变动,当代码改变之后,自 ...
- Mysql中如何开启慢查询功能?
1.修改mysql的配置文件my.ini,增加如下信息,修改之后需要重启mysql服务器. 2.执行一句sql查询语句,结果如下. mysql> select count(*) from ecs ...
- 关于页面中css某些情况下出现不知原因的隔断解决办法
第一种方法:body{margin:0px;padding:0px position:absolute; top:0px;left:0px;} html{ width:100%; overflow-x ...
- MyBatis起步搭建
1 步骤 数据库环境 创建Maven项目 导入依赖 编写MyBatis配置文件 编写MyBatis工具类 编写实体类 编写Mapper 测试 2 数据库环境 MySQL 8.0版本 create da ...
- Blazor 国际化多语言界面 (I18nText )
在实际使用中,我们经常会遇到需要把程序界面多种语言切换,适应不同地区使用者的需求,本文介绍一个我初学Blazor接触到的库,边撸边讲解. 包名: Toolbelt.Blazor.I18nText ht ...
- [源码解析] TensorFlow 分布式环境(8) --- 通信机制
[源码解析] TensorFlow 分布式环境(8) --- 通信机制 目录 [源码解析] TensorFlow 分布式环境(8) --- 通信机制 1. 机制 1.1 消息标识符 1.1.1 定义 ...
- Markdown练习
这是一级标题 这是二级标题 这是三级标题 这是无序列表1 这是无序列表2 有序1 有序2 重点 计网 1. 第一章 第一部分 1.概念.组成.功能和分类 1. 概念 计算机网络是互连的.自治的计算机的 ...
- for .. range中的坑
最近在开发中使用了for range来遍历一个slice,结果在测试的时候遇到了bug,最后定位是错误使用for range造成的,这里记录一下: func redisSlaveScanBigKeys ...
- optimoptions requires Optimization Toolbox(optimoptions 需要 Optimization Toolbox)解决方法
问题:在下载版的matlab中做coursera的machine learning里的ex2,做到 1.2.3 Learning parameters using fminunc 时出现optimop ...