虽然应用keepalived搞定了后端服务负载均衡和高可用性问题,但是在具体应用的时候,还是要注意很多问题。很多应用都用tcp或者http的长连接,因为建立tcp连接或者http连接开销比较大,而应用端其实是需要频繁跟server端通讯的,这时候保持长连接无疑是非常合适的。经过摸索, lvs & keepalived 长连接的配置主要在三个地方:

client端的SoTimeout, 就java来说就是java.net.Socket的setSoTimeout方法设置的, setSoTimeout(0)就是表明超时时间无限大。
这个值是为读取阻塞设置超时的。

lvs的设置:
查看是ipvsadm --list --timeout, 比如我的机器就会返回如下结果:
# ipvsadm --list --timeout
Timeout (tcp tcpfin udp): 7200 5 60
这就表明我的tcp session的timeout时间是7200秒。

设置timeout:
ipvsadm --set 7200 5 60

这个值如果设置太小,你的client将会收到 connection reset by peer此类的错误提示。

keepalived的配置:
就是virtual_server的persistence_timeout,意思就是在这个一定时间内会讲来自同一用户(根据ip来判断的)route到同一个real
server。对于长连接类的应用,你肯定需要这么做。配置值最好跟lvs的配置的timeout一致。

举例如下:

virtual_server 172.19.1.19 5222 {
   delay_loop 2
    lb_algo wrr
    lb_kind DR
    persistence_timeout 7200
    protocol TCP

real_server 172.19.1.8 5222 {
        weight 1
        TCP_CHECK {
            connect_timeout 10
            nb_get_retry 3
            delay_before_retry 3
        }
    }
    real_server 172.19.1.9 5222 {
        weight 1
        TCP_CHECK {
            connect_timeout 10
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}

本文转自 南非波波 51CTO博客,原文链接:http://blog.51cto.com/nanfeibobo/1617110,如需转载请自行联系原作者

lvs keepalived的tcp 长连接的问题解决办法相关推荐

  1. TCP长连接下,在应用层面,定制自己的负载均衡

    TCP长连接下,流量负载均衡的做法 1 背景 2 存在的问题 2.1 连接被均分,流量无法被均分 2.2 长短信问题 2.3 IP鉴权问题 2.4 限速问题 3 定制自己的服务器负载均衡 3.1 解决 ...

  2. python使用socket实现协议TCP长连接框架

    点击上方↑↑↑蓝字[协议分析与还原]关注我们 " 使用python实现协议中常见的TCP长连接框架." 分析多了协议就会发现,很多的应用,特别是游戏类和IM类应用,它们的协议会使用 ...

  3. 通da信TCP长连接数据算法分析

    点击上方↑↑↑蓝字[协议分析与还原]关注我们 " 分析通da信TCP长连接内部分数据的算法." 作为一款老牌的炒股软件,通da信里面的数据是相当的丰富,免费的也很丰富,准确性也很好 ...

  4. TCP长连接与短链接

    1. TCP连接 当网络通信时采用TCP协议时,在真正的读写操作之前,server与client之间必须建立一个连接,当读写操作完成后,双方不再需要这个连接时它们可以释放这个连接,连接的建立是需要三次 ...

  5. TCP长连接和短连接

    2019独角兽企业重金招聘Python工程师标准>>> 1. TCP连接 当网络通信时采用TCP协议时,在真正的读写操作之前,server与client之间必须建立一个连接,当读写操 ...

  6. java mina长连接短连接_MINA实现TCP长连接(四)——断开重连

    前言 今天涉及以下内容: mina官网及实现客户端需要的jar包 客户端实现重连接涉及到的几个类 重连接在Activity中的使用 效果图和项目结构图 重连接涉及到的类源码 先来波效果图 image. ...

  7. TCP长连接与短连接的区别(转)

    1. TCP连接 当网络通信时采用TCP协议时,在真正的读写操作之前,server与client之间必须建立一个连接,当读写操作完成后,双方不再需要这个连接时它们可以释放这个连接,连接的建立是需要三次 ...

  8. 应用服务器与数据库之间是长连接,要接收多个 tcp 长连接不断发送的数据并存储,哪些数据库或数据存储方案比较合适?...

    在服务器建立服务端,与多个 tcp 连接保持长连接,服务端会根据客户端发送的 token 验证确定是否保持长连接建立"session"缓存, 在某个状态开启时(我称为存储状态),要 ...

  9. Python实现心跳保活TCP长连接

    之前参与了一个横向项目,对方要求和他们的服务端对接时,我们开发的客户端必须一直保持连接,即维护一个长连接,这样服务端可以随时对我们下发控制命令. 简介 本文主要介绍如何实现TCP的长连接维护,主要通过 ...

最新文章

  1. 微信小程序登录,后端获取信息的问题
  2. [云炬ThinkPython阅读笔记]2.8 注释
  3. ddr5内存上市时间_DDR5内存明年才能上市,SK Hynix已预研DDR6:12Gbps
  4. LeetCode 487. 最大连续1的个数 II(滑动窗口)
  5. java实验_Java实验报告(实验一)
  6. python pyttsx3文本转语音_Python-文字转语音-pyttsx3
  7. 4K视频直播与点播系统的搭建与体验
  8. 从硬件竞争到软实力PK——电视媒体竞争观察
  9. 管理系统统一鉴权服务器,确认服务器已启用密码鉴权
  10. 数据结构——>稀疏数组
  11. Amoeba 实现Mysql的读写分离
  12. Js页面截取小数点后两位
  13. macfee怎么生成释放代码_mcafee规则设置技巧
  14. 2022-2027年中国氮化硼行业市场运行现状及投资战略研究报告
  15. 网络没有运行wmi服务器,win7系统中没有wmi服务如何解决_win7没有wmi服务的解决方法...
  16. Python练手项目:计算机自动还原魔方视频
  17. Line-based Automatic Extrinsic Calibration of LiDAR and Camera论文阅读
  18. windows批量移动文件bat脚本
  19. 大数据时代,华为云BI助力企业挖掘数据“宝藏”
  20. 分享本周所学——Unreal Engine 5(UE5/虚幻引擎5)安装以及创建项目的常见问题

热门文章

  1. axure rp pro 6.5
  2. 线性表 ----链表的C语言实现
  3. 人,是否应该不要去好高骛远
  4. 使用MakeCAB.exe命令创建CAB文件
  5. Delphi与Ole,Word,Excel,查找与替换等
  6. 基于WebGL架构的3D可视化平台—三维设备管理(ThingJS实现楼宇设备管理3D可视化)...
  7. 区块链的价值在于建立信任,而ICO却在摧毁信任
  8. Spark RDD/Core 编程 API入门系列之动手实战和调试Spark文件操作、动手实战操作搜狗日志文件、搜狗日志文件深入实战(二)...
  9. 脱贫利器 | PYTHON多线程行情抓取工具实现
  10. 大数据时代云计算在新媒体平台的应用研究