当设置为true的时候,TCP会实现监控连接是否有效,当连接处于空闲状态的时候,超过了2个小时,本地的TCP实现会发送一个数据包给远程的 socket,如果远程没有发回响应,TCP会持续尝试11分钟,知道响应为止,如果在12分钟的时候还没响应,TCP尝试关闭socket连接。

keepalive不是说TCP的常连接,当我们作为服务端,一个客户端连接上来,如果设置了keeplive为true,当对方没有发送任何数据过来,超过一个时间(看系统内核参数配置),那么我们这边会发送一个ack探测包发到对方,探测双方的TCP/IP连接是否有效(对方可能断点,断网)。如果不设置,那么客户端宕机时,服务器永远也不知道客户端宕机了,仍然保存这个失效的连接。

当然,在客户端也可以使用这个参数。客户端Socket会每隔段的时间(大约两个小时)就会利用空闲的连接向服务器发送一个数据包。这个数据包并没有其它的作用,只是为了检测一下服务器是否仍处于活动状态。如果服务器未响应这个数据包,在大约11分钟后,客户端Socket再发送一个数据包,如果在12分钟内,服务器还没响应,那么客户端Socket将关闭。如果将Socket选项关闭,客户端Socket在服务器无效的情况下可能会长时间不会关闭。

尽管keepalive的好处并不多,但是很多开发者提倡在更高层次的应用程序代码中控制超时设置和死的套接字。同时需要记住,keepalive不允许你为探测套接字终点(endpoint)指定一个值。所以建议开发者使用的另一种比keepalive更好的解决方案是修改超时设置套接字选项。

说白了:这个参数其实对应用层的程序而言没有什么用。可以通过应用层实现了解服务端或客户端状态,而决定是否继续维持该Socket。

转载于:https://www.cnblogs.com/cfas/p/10422103.html

NETTY keeplive 参数,心跳检测相关推荐

  1. netty自定义消息实现心跳检测与重连

    netty的心跳发送的重连,主要在client端.前面有关于自定义协议的demo:https://blog.csdn.net/zc_ad/article/details/83829620 其实客户端心 ...

  2. netty 中的心跳检测机制

    为什么要心跳检测机制 当服务端接收到客户端的连接以后,与客户端建立 NioSocketChannel 数据传输的双工通道,但是如果连接建立以后,客户端一直不给服务端发送消息,这种情况下是占用了资源,属 ...

  3. Netty(八) Netty心跳检测机制

    1.什么是长链接和短链接 在HTTP/1.0中默认使用短连接.也就是说,客户端和服务器每进行一次HTTP操作,就建立一次连接,任务结束就中断连接.当客户端浏览器访问的某个HTML或其他类型的Web页中 ...

  4. Netty心跳检测机制

    一.Netty心跳检测机制 心跳:即在 TCP 长连接中,客户端和服务器之间定期发送的一种特殊的数据包,通知对方自己还在线,以确保 TCP 连接的有效性. 在 Netty 中,实现心跳机制的关键是 I ...

  5. Netty(3)心跳检测、WebSocket、Protobuf

    一 心跳检测 当连接数很大时,我们想要释放部分空闲连接:或者连接已经断了但服务端没检测到.我们都可以使用Netty自动的心跳检测类IdleStateHandler来实现 1.1 类介绍 IdleSta ...

  6. Netty 心跳检测机制

    心跳检测机制 目的:就是用于检测 检测通信对方是否还"在线",如果已经断开,就要释放资源 或者 尝试重连. 大概的实现原理就是:在服务器和客户端之间一定时间内没有数据交互时, 即处 ...

  7. 【Netty】利用Netty实现心跳检测和重连机制

    一.前言 心跳机制是定时发送一个自定义的结构体(心跳包),让对方知道自己还活着,以确保连接的有效性的机制.   我们用到的很多框架都用到了心跳检测,比如服务注册到 Eureka Server 之后会维 ...

  8. netty的编解码、粘包拆包问题、心跳检测机制原理

    文章目录 1. 编码解码器 2. 编解码序列化机制的性能优化 3. Netty粘包拆包 4. Netty心跳检测机制 5. Netty断线自动重连实现 1. 编码解码器 当你通过netty发送或者接受 ...

  9. Netty空闲心跳检测机制

    概述 Netty提供了一个读写空闲心跳检测机制的Handler,用于检测读空闲.写空闲.读写空闲. 如果服务端在一定时间内没有执行读请求,就会触发读空闲事件,一定时间内没有执行写请求,就会触发写空闲事 ...

  10. Netty学习(七):心跳检测机制

    一.什么是心跳检测机制 所谓心跳, 即在 TCP 长连接中, 客户端和服务器之间定期发送的一种特殊的数据包, 通知对方自己还在线, 以确保 TCP 连接的有效性. 心跳机制主要是客户端和服务端长时间连 ...

最新文章

  1. php java sql_java如何连接sql数据库?
  2. Servlet开发配置
  3. redis安装 linux步骤,【linux安装redis完整步骤】
  4. 阿里云OSS 服务端签名后直传之分片上传(结合element-ui的upload组件)
  5. 【专升本计算机】专升本计算机期末考试复习题(B卷附答案)
  6. php中删除文件夹内容吗,如何使用PHP删除包含内容的文件夹
  7. SQL Server:查找周开始和结束日期时间
  8. leetcode----------Excel Sheet Column Number
  9. 位置指纹(LF)定位技术简介-室内定位
  10. oracle 回表是什么,ORACLE回表
  11. 给定一个净值序列,计算年化收益、最大回撤、夏普比率
  12. maxscale跨库分片的限制
  13. 程序员学习资料分享---爱分享的程序员(新浪微博)
  14. 类似微信群聊九宫格头像的算法实现
  15. 用手机怎么连接服务器?如何用手机远程连接服务器?
  16. 音视频卡顿问题的原因及解决方案
  17. SQL 涉及3个表的连接
  18. 我们熟悉的106短信的水好深啊
  19. Linux下执行预定的任务Atd or Crond
  20. 物理机连接无线网络的配置

热门文章

  1. matlab取整函数与取余函数
  2. 我的计算机加密,安装加密系统后,打开我的电脑速度变慢
  3. 中国价格统计年鉴(2013-2021年)
  4. Adobe Dreamweaver Adobe Photoshop CS5 amtlib.dll 文件
  5. 各代iphone尺寸_iPhone尺寸
  6. LSTM神经网络实战
  7. 通信工程师考试基本情况及经验分享
  8. 2021-11-01
  9. 星痕 轻松实现大屏数据可视化_数据可视化的一些思考丨如何做出令人满意的大屏可视化设计(一)...
  10. RGB网页颜色在线取色器