![TCP 会话如何在 DSR 负载均衡器(L4)解决方案中工作?](https://linux22.com/image/693514/TCP%20%E4%BC%9A%E8%AF%9D%E5%A6%82%E4%BD%95%E5%9C%A8%20DSR%20%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1%E5%99%A8%EF%BC%88L4%EF%BC%89%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88%E4%B8%AD%E5%B7%A5%E4%BD%9C%EF%BC%9F.png)
让我们想象一下客户端正在观看带有标头A
的实时流(转换为一堆 HTTP 请求) 。keep-alive
A -r-> LB-----> R1 --|
/|\ |-----> R2 --|
| ------> R3 --|
|---R----------------|
这个 DSR(直接服务器返回)负载均衡器(L4)是否可能提供least-conn
方法?
如果是,那么如何reals
处理 TCP 序列号?(以及keepalive
连接)由于对于每个新的客户端连接,LB 可以将您路由到不同的real server
。
(来源:haproxy.com)
答案1
如果您使用 DSR,则负载均衡器不会代理 TCP 连接,因此不能更改序列号或确认号。目前,它已不再流行,因为它的功能有限,并且需要与第 2 层的服务器场耦合,而第 2 层服务器场不适合托管多个服务或跨多个数据中心进行负载平衡,而且现代负载均衡器运行在功能更强大的硬件上。