作家
登录

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

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

本节的关键点是四层负载均衡一般只在四层的 TCP/UDP 进行操作。笼统的说,负载均衡器负责操作这些字节,包管同一会话的字节们只跟同一个后端打交道。四层负载均衡对通信中的应用细节是一窍不通的。通信内容可所以 HTTP、Redis、MongoDB 或者任何应用协定。

3.负载均衡器的拓扑分类

七层(应用)负载均衡

四层负载均衡很简单,今朝还在大年夜面积应用。四层负载均衡有什么短处,以至于须要七层(应用)负载均衡呢?例如下面几个四层的案例:

  • 两个 gRPC/HTTP2 客户端要连接到后端,所以经由过程四层负载均衡器来完成这一过程。
  • 四层负载均衡器为每个接入的 TCP 连接创建一个外发的 TCP 连接,如许就有了两个接入、两个外发的连接。
  • 然而客户端 A 的请求频率是每分钟 1 请求,而客户端 B 的频率是每秒钟 50 请求。

在上述场景中,为客户端 A 办事的后端,其负载程度局相当于为客户端 B 办事的后端的约 1/3000 阁下,这明显违背了负载均衡器的初志。在所有多工、保持连接的协定中都邑产生如许的情况若干好多工意思是在单一四层连接中并行发送应用请求;保持连接则意味着在没有晃荡请求的情况下,也不会封闭连接)。出于机能方面的┞峰酌(创建连接的成本平日较高,尤其是当应用 TLS 对连接进行加密的情况下),所有的现代协定都包含这两个特点,所以跟着时光的推移,四层负载均衡的负载不均的情况会越创造显。七层负载均衡可以或许解决这一问题。

图 3 描述了七层的 HTTP/2 负载均衡。这里客户端提议了对负载均衡的单个连接。负载均衡器连接到了两个后端。当客户端向负载均衡器发送两个 HTTP/2 流的时刻,两个流会分别送往不合后端。如许多工客户端的大年夜量不合的请求会被高效的分发给多个后端。这就是七层负载均衡对现代协定的重要性的来竽暌股(因为对应用流量的洞察才能,七层负载均衡还有很多其他好处,后面会具体描述)。

七层负载均衡和 OSI 模型

之前四层负载均衡章节中说过,用 OSI 模型来描述负载均衡是有艰苦的。OSI 描述的第七层,涵盖了负载均衡的多方面功能的臭显。比如对 HTTP 来说,有以下几个初级一些的层次:

  • 可选的 TLS。收集界对 TLS 毕竟应当属于 OSI 模型的哪一层素有争议。为评论辩论便利,我们放在七层。
  • 物理的 HTTP 协定(HTTP/1或 HTTP/2)。
  • 逻辑 HTTP 协定(Header、Body 和 Trailer)。
  • 消息协定(gRPC、REST 等)。

一个成熟的的七层负载均衡器应当照顾到膳绫擎描述的每一层次。另一个七层负载均衡器可能只支撑七层分类中的特点的一个子集。总而言之,七层负载均衡器典范畴包含了远超四层的为数浩瀚的功能(例子中只提到了了 HTTP;Redis、Kafka、MongoDB 等也都是七层应用协定的例子,也都应受益于七层负载均衡)。

2.负载均衡器特点

下面简单汇总一下负载均衡器的高层功能。并非所有负载均衡器都供给了所有功能。

办事发明

结合膳绫擎的好坏势分析,可以知道,在可以或许限制编程说话应用,并克服进级苦楚的情况下,这种架构是可以获获成功的。

办事发明就是负载均衡器用于决定可用后台列表的过程。这一功能的实现方法花样百出,下面举一些例子:

  • 静态设备文件。
  • DNS。
  • Zookeeper、Etcd、Consul 等。
  • Envoy 的 同一数据平面 API。

健康检查

负载均衡器应用健康检成功能,来检测后端是否可用。健康检查有两种实现思路:

  • 主动式:负载均衡器周期性的向后端发送 ping (例如一个发送到/healthcheck端点的 HTTP 请求),以此断定后端的健康情况。
  • 被动式:负载均衡器经由过程对主数据流的分析来肯定健康情况。比如一个四层负载均衡器,在发明持续三个连接缺点的情况下,就会剖断一个后端弗采取;七层负载均衡可能会在持续三个 HTTP 503 响应之后剖断则一后端为不健康状况。

负载均衡

是的,负载均衡器必须为负载做均衡。有了一系列的健康后端,若何选择后妒攀来响应一个请求或者连接呢?负载均衡算法是一个活泼的研究范畴,有 Round Robin 如许的简单办法,也有经由过程延迟和后端负载情况进行断定的复杂筹划。 Power of 2 least request load balancing 一文,介绍了最风行的兼顾机能和简略单纯的负载均衡算法之一。

随机选择两个后端,进一步选择个中负载较低的一个。

Session 粘连

在某些应用中有一个重要需求:同一会话的请求须要达到同一后端。对于缓存、临时复杂状况等场景来嗣魅这是很须要的。对于“同一会话”的定义有多种情势,可能包含 HTTP Cookie、客户端连接的属性以及其他属性。很多七层负载均衡器具有一些对会话粘连的支撑。然而我认为会话粘连是一种天然易碎的情况(处理会话的后端可能会瘫痪),所以对于依附会话的体系设计应当多加当心。

TLS 这一话题,不管是边沿办事照样办事间通信,都值得大年夜书特书。是以很多七层负载均衡器在 TLS 处理方面都做了大年夜量工作,个中包含终端、证书校验和绑定,应用 SNI 供给证书等功能。

不雅测性

我常说:“不雅测性、不雅测性、不雅测性。”,收集是一个生成弗成靠的器械,负载均衡器应当供给状况、跟踪以及日记,协助运维人员甄别故障,大年夜而进行修复。负载均衡器的检测输出差距很大年夜。高等的负载均衡器供给包含数字统计、分布式跟中和自定义日记的大年夜量输出。我认为加强的不雅测性并不是大年夜天而降的,负载均衡器须要做出很多附加工作来完成这一义务。对机能造成的负面影响,相对于这一系列数据的好处来说,不值一提。

安然性和拒绝办事进击防备


  推荐阅读

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

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


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

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

关键词: 探索发现

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

网友点评
自媒体专栏

评论

热度

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