音频应用

 找回密码
 快速注册

QQ登录

只需一步,快速开始

查看: 3491|回复: 6
收起左侧

[转帖] 负载均衡(Load Balancing)

[复制链接]

7790

积分

2

听众

-29

音贝

音频应用注册会员

Rank: 4Rank: 4

积分
7790
发表于 2007-12-5 14:57:16 | 显示全部楼层 |阅读模式

调度后方的多台机器,以统一的接口对外提供服务,承担此职责的技术组件被称为“负载均衡”

在互联网时代的早期,网站流量还相对较小,并且业务也比较简单,单台服务器便有可能满足访问需要,但时至今日,互联网应用也好,企业级应用也好,一般实际用于生产的系统,几乎都离不开集群部署了。信息系统不论是采用单体架构多副本部署还是微服务架构,不论是为了实现高可用还是为了获得高性能,都需要利用到多台机器来扩展服务能力,希望用户的请求不管连接到哪台机器上,都能得到相同的处理。另一方面,如何构建和调度服务集群这事情,又必须对用户一侧保持足够的透明,即使请求背后是由一千台、一万台机器来共同响应的,也绝非用户所关心的事情,用户需记住的只有一个域名地址而已。调度后方的多台机器,以统一的接口对外提供服务,承担此职责的技术组件被称为“负载均衡”(Load Balancing)。

真正大型系统的负载均衡过程往往是多级的。譬如,在各地建有多个机房,或机房有不同网络链路入口的大型互联网站,会从 DNS 解析开始,通过“域名” → “CNAME” → “负载调度服务” → “就近的数据中心入口”的路径,先将来访地用户根据 IP 地址(或者其他条件)分配到一个合适的数据中心中,然后才到稍后将要讨论的各式负载均衡。在 DNS 层面的负载均衡与前面介绍的 DNS 智能线路、内容分发网络等,在工作原理上是类似的,其差别只是数据中心能提供的不仅有缓存,而是全方位的服务能力。后续我们所讨论的“负载均衡”只聚焦于网络请求进入数据中心入口之后的其他级次的负载均衡。

无论在网关内部建立了多少级的负载均衡,从形式上来说都可以分为两种:四层负载均衡和七层负载均衡。在详细介绍它们是什么以及如何工作之前,我们先来建立两个总体的、概念性的印象。

四层负载均衡的优势是性能高,七层负载均衡的优势是功能强。
做多级混合负载均衡,通常应是低层的负载均衡在前,高层的负载均衡在后(想一想为什么?)。
我们所说的“四层”、“七层”,指的是经典的OSI 七层模型中第四层传输层和第七层应用层,表 4-1 是来自于维基百科上对 OSI 七层模型的介绍(笔者做了简单的中文翻译),这部分属于网络基础知识,这里就不多解释了。后面我们会多次使用到这张表,如你对网络知识并不是特别了解的,可通过维基百科获得进一步的资料。
音频应用

7790

积分

2

听众

-29

音贝

音频应用注册会员

Rank: 4Rank: 4

积分
7790
 楼主| 发表于 2007-12-5 14:58:06 | 显示全部楼层
负载均衡的两大职责是“选择谁来处理用户请求”和“将用户请求转发过去”。到此我们仅介绍了后者,即请求的转发或代理过程。前者是指均衡器所采取的均衡策略,由于这一块涉及的均衡算法太多,笔者无法逐一展开,所以本节仅从功能和应用的角度去介绍一些常见的均衡策略。

轮循均衡(Round Robin):每一次来自网络的请求轮流分配给内部中的服务器,从 1 至 N 然后重新开始。此种均衡算法适合于集群中的所有服务器都有相同的软硬件配置并且平均服务请求相对均衡的情况。
权重轮循均衡(Weighted Round Robin):根据服务器的不同处理能力,给每个服务器分配不同的权值,使其能够接受相应权值数的服务请求。譬如:服务器 A 的权值被设计成 1,B 的权值是 3,C 的权值是 6,则服务器 A、B、C 将分别接收到 10%、30%、60%的服务请求。此种均衡算法能确保高性能的服务器得到更多的使用率,避免低性能的服务器负载过重。
随机均衡(Random):把来自客户端的请求随机分配给内部中的多个服务器,在数据足够大的场景下能达到相对均衡的分布。
权重随机均衡(Weighted Random):此种均衡算法类似于权重轮循算法,不过在分配处理请求时是个随机选择的过程。
一致性哈希均衡(Consistency Hash):根据请求中某一些数据(可以是 MAC、IP 地址,也可以是更上层协议中的某些参数信息)作为特征值来计算需要落在的节点上,算法一般会保证同一个特征值每次都一定落在相同的服务器上。一致性的意思是保证当服务集群某个真实服务器出现故障,只影响该服务器的哈希,而不会导致整个服务集群的哈希键值重新分布。
响应速度均衡(Response Time):负载均衡设备对内部各服务器发出一个探测请求(例如 Ping),然后根据内部中各服务器对探测请求的最快响应时间来决定哪一台服务器来响应客户端的服务请求。此种均衡算法能较好的反映服务器的当前运行状态,但这最快响应时间仅仅指的是负载均衡设备与服务器间的最快响应时间,而不是客户端与服务器间的最快响应时间。
最少连接数均衡(Least Connection):客户端的每一次请求服务在服务器停留的时间可能会有较大的差异,随着工作时间加长,如果采用简单的轮循或随机均衡算法,每一台服务器上的连接进程可能会产生极大的不平衡,并没有达到真正的负载均衡。最少连接数均衡算法对内部中需负载的每一台服务器都有一个数据记录,记录当前该服务器正在处理的连接数量,当有新的服务连接请求时,将把当前请求分配给连接数最少的服务器,使均衡更加符合实际情况,负载更加均衡。此种均衡策略适合长时处理的请求服务,如 FTP 传输。
…………
从实现角度来看,负载均衡器的实现分为“软件均衡器”和“硬件均衡器”两类。在软件均衡器方面,又分为直接建设在操作系统内核的均衡器和应用程序形式的均衡器两种。前者的代表是 LVS(Linux Virtual Server),后者的代表有 Nginx、HAProxy、KeepAlived 等,前者性能会更好,因为无须在内核空间和应用空间中来回复制数据包;而后者的优势是选择广泛,使用方便,功能不受限于内核版本。

在硬件均衡器方面,往往会直接采用应用专用集成电路(Application Specific Integrated Circuit,ASIC)来实现,有专用处理芯片的支持,避免操作系统层面的损耗,得以达到最高的性能。这类的代表就是著名的 F5 和 A10 公司的负载均衡产品。
音频应用

6514

积分

2

听众

-595

音贝

音频应用注册会员

Rank: 4Rank: 4

积分
6514
发表于 2007-12-5 16:28:23 | 显示全部楼层
学习学习:victory:
欢迎厂家入驻,推文!免费!微信:yinpinyingyong

7790

积分

2

听众

-29

音贝

音频应用注册会员

Rank: 4Rank: 4

积分
7790
 楼主| 发表于 2007-12-5 23:05:27 | 显示全部楼层
:loveliness:
欢迎厂家入驻,推文!免费!微信:yinpinyingyong

7790

积分

2

听众

-29

音贝

音频应用注册会员

Rank: 4Rank: 4

积分
7790
 楼主| 发表于 2007-12-7 00:03:47 | 显示全部楼层
:lol :lol :lol
欢迎厂家入驻,推文!免费!微信:yinpinyingyong

4万

积分

4

听众

213

音贝

音频应用中级会员

Rank: 5Rank: 5Rank: 5

积分
49992
发表于 2007-12-18 23:04:00 | 显示全部楼层
顶下哈
欢迎厂家入驻,推文!免费!微信:yinpinyingyong

333

积分

2

听众

-12

音贝

音频应用

Rank: 1

积分
333
发表于 2007-12-19 13:15:03 | 显示全部楼层
欣赏中~~~~:victory: :victory:
欢迎厂家入驻,推文!免费!微信:yinpinyingyong
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

音频应用搜索

小黑屋|手机版|音频应用官网微博|音频应用 ( 鄂ICP备16002437号 )

GMT+8, 2025-6-9 06:36 , Processed in 0.032038 second(s), 8 queries , Redis On.

Powered by Audio app

快速回复 返回顶部 返回列表