在keepalived+lvs的配置文件keepalived.conf中有一个选项persistence_timeout

该选项的作用:在一定时间内使来自于同一个Client的所有TCP请求被负载到同一个RealServer上。

查看已设置的persistence_timeout时间:
ipvsadm -S -n
查看Client连接到Server端的请求负载情况:
ipvsadm -L -n -c
#当设置了persistence_timeout 时间后,指定时间内来自同一Client的请求会被发送到同一个RealServer
说明(官方):http://www.linuxvirtualserver.org/docs/persistence.html
#大体意思

在C/S架构中,Client和Server间的多个连接有时存在着关联性
比如FTP主动模式的20和21两个端口:21默认为监听端口;20则为数据传输端口
#20端口的开启是建立在21端口进行了有效的用户确认和文件交互确认后才会开启的,是Server主动连接Client所告知的端口 但是在FTP的被动模式下,是Server主动将自己开放的随机数据端口告知Client,然后Client再去和Server的新端口建立新的TCP连接 假如`persistence_timeout`该选项注释掉,那么Client和Server间建立的新的TCP连接有可能被负载到另外一台RealServer上去,此时Client和Server之间处于半连接状态,所以当有此选项时,就不会出现此问题了。 此选项对于连接关联性是一个很好的解决方案,但是会造成轻微的负载不均衡(官方原文:slight load imbalance)
注意:

此选项设置时间过长会导致严重的负载不均衡,当然不光是因为时间的原因,还有比如某些网络设置了代理服务,此时负载会将来自于该网络内所有的用户请求当做来自于同一Client

最新文章

  1. .Net Core 之 图形验证码 本文介绍.Net Core下用第三方ZKWeb.System.Drawing实现验证码功能。
  2. Gradle使用小结
  3. php配置中的register_globals用法
  4. Python中如何读取xml的数据
  5. sqoop中,如果数据中本身有换行符,会导致数据错位
  6. 【Django】Django 文件下载最佳实践
  7. asp.net中当服务器出错时显示指定的错误页面
  8. Codeforces gym 100685 F. Flood bfs
  9. DDL_数据库模式定义语言
  10. smali文件语法参考
  11. Swift中元组(Tuples),结构体(Struct),枚举(Enums)之间的区别
  12. PHP冒泡排序法
  13. Django 笔记(四)模板标签 ~ 自定义过滤器
  14. 洛谷P4064 加法 [JXOI2017] 贪心
  15. JS通过类名判断是否都必填
  16. 1 php protocolbuffers安装
  17. JVM源码分析之堆外内存完全解读
  18. C# 小叙 Encoding (一)
  19. egret请求参数
  20. 电脑清缓存(C盘占空间)

热门文章

  1. charindex函数的用法
  2. Java IO与NIO的总结、比较
  3. oracle创建用户表空间
  4. asp.net 3.三层架构
  5. asp.net 1.HTTP协议
  6. centos7.4 安装 .net core 2.2
  7. css,使两个在同一行内的display:inline-block的div顶部对齐。
  8. TCP/IP网络知识
  9. idea tomcat 乱码问题的解决及相关设置
  10. fastadmin 列表展示时字段值截取