在某些成员节点失效时,负载均衡器会如何处理已有TCP连接?
2012-05-11 22:05
302 查看
作为负载均衡设备的系统管理员,经常遇到的问题是pool中配置的member或者说service的监控状态为失败(down)了。我们知道,负载均衡器会禁用这个失效的节点,把新的流量发送给pool中其他可用节点。但是,已经跟这个失效节点发起的连接请求,会如何处理呢?
从提高用户体验的角度来看,也许让已有连接继续进行,直至正常结束(或者被动结束)会比较合适。F5的bigip正是这么处理的。bigip的pool对象有一个高级属性,叫Action on Service Down。其有4个可选值,分别是Reject, Drop, Reselect,与None。默认值为None,即不做处理,让已有连接继续,直至自然结束。
优点:某些情况下,一个节点本身正常运行,但lb上的monitor因为各种因素,导致误报down。这种情况下,用户连接得以保留,等已有连接处理完毕后,新的请求又发至pool中其他良好节点,用户体验不受影响。
另外一种更常见的情况是,代码发布人员在发布新版本前需要将这个节点的ECV check人为设置成disabled,让其在LB上失效,进而开始更新代码。实际上monitor失败后,这些节点依旧是可以正常处理客户请求的。这种情况下,保留已有连接的理由更加充足。这种情形,估计占到service down情况总量的80%以上。
缺点:若即非代码更新维护,该节点也确实无法正常响应,则已有连接会继续进行一段时间直至TCP超时,无法像即时结束已有连接那样干脆利落的将用户引导至新的可用节点。
另外说一下netscaler。与bigip不同,ns的默认设置是即时中断已有连接。配置属性名称是DownStateFlush,在配置service时可选。默认值为Enabled。若需要像bigip那样保持已有连接,则可以设置DownStateFlush为disabled。
更好的用户体验,就是网络工程师最大的价值所在!
从提高用户体验的角度来看,也许让已有连接继续进行,直至正常结束(或者被动结束)会比较合适。F5的bigip正是这么处理的。bigip的pool对象有一个高级属性,叫Action on Service Down。其有4个可选值,分别是Reject, Drop, Reselect,与None。默认值为None,即不做处理,让已有连接继续,直至自然结束。
优点:某些情况下,一个节点本身正常运行,但lb上的monitor因为各种因素,导致误报down。这种情况下,用户连接得以保留,等已有连接处理完毕后,新的请求又发至pool中其他良好节点,用户体验不受影响。
另外一种更常见的情况是,代码发布人员在发布新版本前需要将这个节点的ECV check人为设置成disabled,让其在LB上失效,进而开始更新代码。实际上monitor失败后,这些节点依旧是可以正常处理客户请求的。这种情况下,保留已有连接的理由更加充足。这种情形,估计占到service down情况总量的80%以上。
缺点:若即非代码更新维护,该节点也确实无法正常响应,则已有连接会继续进行一段时间直至TCP超时,无法像即时结束已有连接那样干脆利落的将用户引导至新的可用节点。
另外说一下netscaler。与bigip不同,ns的默认设置是即时中断已有连接。配置属性名称是DownStateFlush,在配置service时可选。默认值为Enabled。若需要像bigip那样保持已有连接,则可以设置DownStateFlush为disabled。
更好的用户体验,就是网络工程师最大的价值所在!
相关文章推荐
- 如何处理10000 TCP连接
- 学习banana的博文--无线网络,两节点(TCP连接,FTP应用)
- 旧密码OWA未失效应该如何处理
- 如何使用专用管理连接进行问题诊断和处理 【摘自SQL Server在线帮助】
- NS2入门实例 2---无线网络,两节点(TCP连接,FTP应用)
- 当出现大量timewait状态的连接时,该如何处理?
- TCP如何处理失序数据包
- TCP连接超时处理
- redis 如何处理客户端连接
- win10提示“因为文件共享不安全,所以你不能连接到文件共享”如何处理
- 如何使用Google APIs和Google应用系统集成(7)----在里面JSON兑换XML数据处理,JSON数据包括违规XML数据规范:XML节点名称不支持号码Java解
- 如何从一台客户机向服务机发起40亿TCP长连接?
- 如何处理数据库连接空闲太久导致失败的问题
- TCP socket如何判断连接断开
- WinXP下共享打印机连接失败如何紧急处理
- awk 如何处理两个文件,实现类似数据库表连接的操作
- grub.conf配置失效时改如何处理
- 如何在socket编程的Tcp连接中实现心跳协议
- redis 如何处理客户端连接
- tcp 服务端如何判断客户端断开连接