作家
登录

现代网络负载均衡和代理技术,终于弄懂负载均衡那点事

作者: 来源: 2018-01-17 14:09:48 阅读 我要评论

  • 七层负载均衡器要在应用层面进行更多的周详分析、变换以及路由工作,对于原始流量(每秒数据包或每秒字节数)的负载,其才能要弱于优化过的四层负载均衡器。这一实际使得四层负载均衡器更便于应对拒绝办事进击。
  • 相对于四层负载均衡器,七层负载均衡器的开辟加倍活泼,安排加倍频繁,也会有更多 Bug。有了前置的四层负载均衡器,就可以在七层负载均衡器进级时代进行健康检查和排空,现代四层负载均衡器平日应用 BGP 和 ECMP(后续章节会具体讲解),七层负载均衡的安排平日会较为简单。最后因为七层负载均衡器相对来说复杂度较高,是以也更轻易出现问题,有了前端的四层负载均衡,就可以在出现问题的时刻应用路由功能绕过故障节点,进步体系的总体稳定性。

下文中我会讲到集中不合设计的中心/边沿四层负载均衡器。后面提到的设计平日是无法用在客户库或 Sidecar 拓扑中的。

还在应用的第一种四层负载均衡器是图 8中的终端负载均衡器。这和我们介绍四层负载均衡的时刻讲到的内容是一致的。这种类型的负载均衡器中,应用了两个的自力的 TCP 连接:一个用于客户端和负载均衡器之间;另一个用在负载均衡器和后端之间。

Direct Server Return (DSR)

四层终端负载均衡器还有两个原因:

  1. 实现相对简单。
  2. 接近客户端的连接终端对机能有明显影响。尤其是如不雅客户应用有损收集(例如蜂窝网)的话,在进入稳定的有线传输到最注目标之前,是轻易产生重传的。换句话说,这种负载均衡器实用于在存在点(Point of Presence )场景下的原始 TCP 连接。

TCP/UDP 透传负载均衡器

应用分布式一致性哈希进行容错和伸缩

四层负载均衡器的另一种类型就是图 9所说的透传负载均衡器。这种类型的负载均衡过程中,TCP连接没有被负载均衡器终结,每个链接的数据包,在经由连接分析和收集地址转换(NAT)过程之后,都被转发给一个选中的后端。起首让我们定义一下连接跟踪和 NAT:

  • 连接跟踪:跟踪全部晃荡 TCP 连接的过程。这里包含很多内容,例如握手是否完成,是否收到 FIN,连接发呆了多久,这个连接转发给哪一个后端等。
  • NAT:是应用连接跟踪数据,来更改数据包的 IP/端口信息使之穿过负载均衡器的过程。

有了连接跟踪和 NAT,负载均衡器就能把客户端的 TCP 流量几乎原封不动的的转发给后端。例如客户端同1.2.3.4:80进行通信,选中的后端是10.0.0.2:9000。客户端的 TCP 数据包会达到位于1.2.3.4:80的负载均衡器。负载均衡器会把目标 IP 和端口调换为10.0.0.2:9000;同时还会把源 IP 调换为负载均衡器的 IP。当后峨锾螃 TCP 连接时,数据包就会返回给负载均衡器,负载均衡器中的链接跟踪和 NAT 再次发患咀用,反向送回数据包。

为什么会应用这一种负载均衡器,而不是前面提到的终端型呢?

  • 机能和资本消费:透传型的负载均衡器没有终结 TCP 连接,无需缓存任何的 TCP 连接窗口。每个连接的状况存储异常小,平日应用高效的哈希表萌芽即可。正因如斯,相对终端负载均衡器来说,透传型负载均衡器可以或许处理更大年夜数量的晃荡链接,单位时光内处理更多的数据包。
  • 许可后端进行拥塞控制:TCP 拥塞控制 是一种机制,让 Internete 端点对外发数据进行流量控制,防止超量应用带宽懈弛冲。
  • 为直接办事器返回(Direct Server Return = DSR)做基线,以及四层负载均衡集群:透传负载均衡也是高等四层负载均衡(例如后面将要说到的 DSR 和应用分布式一致性哈希的集群)的基本。

图 10展示的就是 DSR 负载均衡。DSR 构建在前文提到的透传负载均衡器的基本之上。DSR 是一种优化筹划,只有入站/请求数据包经由过程负载均衡;出站/响应数据包绕过负载均衡器直接返回给客户端。应用 DSR 筹划的有趣之处在于,很多负载的响应比请求数据量大年夜很多(比如典范的 HTTP 要乞降响应)。假设 10% 的流量是请求,别的 90% 是响应,如不雅应用了 DSR 负载均衡,仅须要 1/10 的容量就可以或许知足体系须要。早年的负载均衡异常昂贵,这一筹划可以或许明显降低体系成本并进步靠得住性(更少就是更好)。DSR 负载均衡器用下面的方法扩大了透传负载均衡的概念:

  • 因为响应包不再经由负载均衡器,所以连接跟踪仅有部分数据,负载均衡器无法知道完全的 TCP 连接状况。然而照样可以经由过程对客户数据包的不雅察,对发呆超时的情况来揣摸具体状况。
  • 负载均衡器平日应用 GRE 来封装 IP 包,并大年夜负载均衡器发送到后端。如许当后端接收到封装后的数据包,可以解包并获得客户端的端口和地址。如许后端就能直接跨过负载均衡器直接发送响应包给客户端了。
  • DSR 负载均衡器的一个重要部分就是:后端部分的介入了负载均衡过程。后端须要合理的设备 GRE 地道,并且须要根据收集的初级细节来设备本身的连接跟踪以及 NAT 等。

嵌入式客户库的一个变体就是图 7 中的 Sidecar 代劳拓扑。近年来,这一拓扑以 “Service Mesh” 的概念日益风行。Sidecar 代劳背后的思路是,以过程间通信造成的些许延迟为价值,在无需挂念编程说话锁定的情况下获得嵌入客户端库的各类长处。

应用高可用配对方法实现容错


  推荐阅读

  思华科技曹敬涛:云计算时代下的存储策略分析

【51CTO.com原创稿件】当今,云计算几乎改变了全部 IT 家当的格局,各类类型的企业纷纷拥抱云计算,迎来了市场收成期。为了更深刻地解读国内云计算家当政策,展示我国云计算国度标准研制工作的结不雅,>>>详细阅读


本文标题:现代网络负载均衡和代理技术,终于弄懂负载均衡那点事

地址:http://www.17bianji.com/lsqh/40331.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)