一篇读懂分布式架构下的负载均衡

一篇读懂分布式架构下的负载均衡,第1张

百度词条里的解释是:负载均衡,英文叫Load Balance,意思就是将请求或者数据分摊到多个 *** 作单元上进行执行,共同完成工作任务。
它的目的就通过调度集群,达到最佳化资源使用,最大化吞吐率,最小化响应时间,避免单点过载的问题。

负载均衡可以根据网络协议的层数进行分类,我们这里以ISO模型为准,从下到上分为:
物理层,数据链路层,网络层,传输层,会话层,表示层,应用层。
当客户端发起请求,会经过层层的封装,发给服务器,服务器收到请求后经过层层的解析,获取到对应的内容。

二层负债均衡是基于数据链路层的负债均衡,即让负债均衡服务器和业务服务器绑定同一个虚拟IP(即VIP),客户端直接通过这个VIP进行请求,那么如何区分相同IP下的不同机器呢?没错,通过MAC物理地址,每台机器的MAC物理地址都不一样,当负载均衡服务器接收到请求之后,通过改写>

即全球服务器负载均衡。

硬件负载均衡解决方案是直接在服务器和外部网络间安装负载均衡设备,这种设备通常称之为负载均衡器,由于专门的设备完成专门的任务,独立于 *** 作系统,整体性能得到大量提高,加上多样化的负载均衡策略,智能化的流量管理,可达到最佳的负载均衡需求。

软/硬件负载均衡:

软件负载均衡解决方案是指在一台或多台服务器相应的 *** 作系统上安装一个或多个附加软件来实现负载均衡,如DNS Load Balance,CheckPoint Firewall-1 ConnectControl等,它的优点是基于特定环境,配置简单,使用灵活,成本低廉,可以满足一般的负载均衡需求。

软件解决方案缺点也较多,因为每台服务器上安装额外的软件运行会消耗系统不定量的资源,越是功能强大的模块,消耗得越多,所以当连接请求特别大的时候,软件本身会成为服务器工作成败的一个关键;软件可扩展性并不是很好,受到 *** 作系统的限制;由于 *** 作系统本身的Bug,往往会引起安全问题。

Linux的负载均衡常用的有三种技术:中国人搞出来的大神级产品 LVS Linux Virtual Server,俄罗斯的Nginx,来发法国的HAProxy。都是基于Linux的开源免费的负载均衡软件。

1 抗负载能力强,性能高,能达到F5的60%,对内存和CPU资源消耗比较低

2 工作在网络4层,通过VRRP协议(仅作代理之用),具体的流量是由linux内核来处理,因此没有流量的产生。

3 稳定,可靠性高,自身有完美的热备方案(Keepalived+lvs)

4 不支持正则处理,不能做动静分离。

5 支持多种负载均衡算法:rr(轮询),wrr(带权轮询)、lc(最小连接)、wlc(带权最小连接)

6 配置相对复杂,对网络依赖比较大,稳定性很高。

7 LVS工作模式有4种:

    (1) nat 地址转换

    (2) dr 直接路由

    (3) tun 隧道

    (4) full-nat
1 工作在网络7层,可以针对>

这是网上摘抄的文章,正好想了解一下负载均衡,看这篇文章写的比较易懂,就。。。。


对于数据流量过大的网络中,往往单一设备无法承担,需要多台设备进行数据分流,而负载均衡器就是用来将数据分流到多台设备的一个转发器。

目前有许多不同的负载均衡技术用以满足不同的应用需求,如软/硬件负载均衡、本地/全局负载均衡、更高网络层负载均衡,以及链路聚合技术。

腾讯、淘宝、新浪等大型门户及商业网站使用的是软负载均衡器Nginx,而农行用的是F5硬负载均衡器,这里就简单介绍下这两种技术:

一软件负载均衡解决方案

在一台服务器的 *** 作系统上,安装一个附加软件来实现负载均衡,如Nginx负载均衡(我们管理系统平台使用的也是这款均衡器)。它的优点是基于特定环境、配置简单、使用灵活、成本低廉,可以满足大部分的负载均衡需求。

1什么是Nginx

Nginx ("engine x") 是一个高性能的>一、前言

在互联网雄起的时代,随着各个网络请求量的不断增大,利用负载分化请求量,从而达到优化硬件负荷量的目的,一般负载分为软件负载和硬件负载,比如软件中使用nginx等工具实现负载均衡,而F5负载均衡器就是硬件网络性能优化设备。
二、何为负载均衡器

那么什么是F5负载均衡器呢,通俗的讲就是将客户端请求量通过F5负载到各个服务器,增加吞吐量,从而降低服务器的压力,他不同于交换机、路由器这些网络基础设备,而是建立在现有网络结构上用来增加网络带宽和吞吐量的的硬件设备

三、工作原理

1、客户发出服务请求到VIP

2、BIGIP接收到请求,将数据包中目的IP地址改为选中的后台服务器IP地址,然后将数据包发出到后台选定的服务器

3、后台服务器收到后,将应答包按照其路由发回到BIGIP

4、BIGIP收到应答包后将其中的源地址改回成VIP的地址,发回客户端,由此就完成了一个标准的服务器负载平衡的流程。

四、负载均衡涉及到算法

轮询算法:按照顺序将每个请求分发到每个服务器,相当于ngixn负载的轮训算法一个道理,当其中某个服务器发生第二到第7层的故障,BIGIP就把其从顺序循环队列中拿出,不参与下一次的轮训。

比率:指的是给每个服务器分配一个加权值,类似于权重,轮训会根据和这个权重去访问具体要到哪台服务器。

优先权:给所有服务器分组,BIGIP用户的请求,分配给优先级最高的服务器组(在同一组内,采用轮询或比率算法,分配用户的请求);当最高优先级中所有服务器出现故障,BIGIP才将请求送给次优先级的服务器组。

最快模式:传递连接给那些响应最快的服务器。当发生异常故障时,BIGIP就会将其拿出来作为当前相应服务器,此时就不参与其他用户的请求轮训分配。

观察模式:以连接数和相应时间为准,当放生故障时BIGIP会将其拿出来作为请求的相应服务器,并且也不参与其他用户请求,直至恢复正常为止。

预测模式:BIGIP利用收集到的服务器当前的性能指标,进行预测分析,选择一台服务器在下一个时间片内,其性能将达到最佳的服务器相应用户的请求。

动态性能分配:BIGIP收集到的应用程序和应用服务器的各项性能参数,动态调整流量分配。

动态服务器补充:当主服务器群中因故障导致数量减少时,动态地将备份服务器补充至主服务器群。

服务质量:按不同的优先级对数据流进行分配。

服务类型:按不同的服务类型(在Type of Field中标识)对数据流进行分配。

规则模式:针对不同的数据流设置导向规则,用户可自行编辑流量分配规则,BIGIP利用这些规则对通过的数据流实施导向控制。
五。结尾

总之F5负载均衡器涉及到的原理内容多而杂,重点用户硬件负载方面,目前理解到此,还有很多不足之处希望一起发文讨论。

负载均衡 建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展 网络设备 和 服务器 的带宽、增加 吞吐量 、加强网络数据处理能力、提高网络的灵活性和可用性。

负载均衡,英文名称为 Load Balance,其意思就是分摊到多个 *** 作单元上进行执行,例如 Web 服务器 、 FTP 服务器 、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。

软件负载均衡则是通过在服务器上安装的特定的负载均衡软件或是自带负载均衡模块完成对请求的分配派发。常用的负载均衡策略:

1️⃣轮询
作为非常经典的负载均衡策略,早期该策略应用地非常广泛。其原理很简单,给每个请求标记一个序号,然后将请求依次派发到服务器节点中,适用于 集群 中各个节点提供服务能力等同且无状态的场景。其缺点也非常明显,该策略将节点视为等同,与实际中复杂的环境不符。加权轮询为轮询的一个改进策略,每个节点会有权重属性,但是因为权重的设置难以做到随实际情况变化,仍有一定的不足。

2️⃣随机
与轮询相似,只是不需要对每个请求进行编号,每次随机取一个。同样地,该策略也将后端的每个节点是为等同的。另外同样也有改进的加权随机的算法,不再赘述。

3️⃣最小响应时间
通过记录每次请求所需的时间,得出平均的响应时间,然后根据响应时间选择最小的响应时间。该策略能较好地反应服务器的状态,但是由于是平均响应时间的关系,时间上有些滞后,无法满足快速响应的要求。因此在此基础之上,会有一些改进版本的策略,如只计算最近若干次的平均时间的策略等。

4️⃣最小并发数
客户端的每一次请求在服务器停留的时间可能会有较大的差异,随着工作时间加长,如果采用简单的轮循或随机均衡算法,每一台服务器上的连接进程可能会产生较大的不同,并没有达到真正的负载均衡。最小并发数的策略则是记录了当前时刻,每个备选节点正在处理的事务数,然后选择并发数最小的节点。该策略能够快速地反应服务器的当前状况,较为合理地将负责分配均匀,适用于对当前系统负载较为 敏感的场景

F5 负载均衡是硬件负载均衡的一种。硬件负载均衡,顾名思义,在服务器节点之间安装专门的硬件进行负载均衡的工作。

F5 是负载均衡产品的一个品牌,其地位类似于原来诺基亚在手机品牌中的位置。除了 F5 以外,Radware、Array、A10、Cisco、深信服和华夏创新都是负载均衡的牌子,因为 F5 在这类产品中影响最大,所以经常说 F5 负载均衡。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/13016977.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-29
下一篇 2023-05-29

发表评论

登录后才能评论

评论列表(0条)

保存