查看: 314|回复: 2

[原创] 【介绍】什么是负载均衡

[复制链接]

0

技术

9

魅力

1

原创

版主

禁止访问

Rank: 7Rank: 7Rank: 7

积分
5899
人气
156
分享
52

最佳新人活跃会员

发表于 2023-11-12 14:12:37 | 显示全部楼层 |阅读模式
本帖最后由 蒟蒻 于 2023-11-12 14:16 编辑

我们一般会把多台服务器作为一个集群提供服务以确保用户体验和提高网站的可靠性,比如集群中某个服务器挂了,可以把请求转发到没挂的服务器,网站还能运行。
但是当一个用户访问网站时(如Bilibili),我们需要判断将用户分配到不同的服务器中,这个时候,负载均衡(Load Balance或Server Load Balance)就起作用了,因为流量并不能自动转发到服务器,还需要负载均衡服务器做中转,而负载均衡服务器中一般安装了负载均衡软件。一般情况下,使用了负载均衡的服务器的架构图如下:

负载均衡模型
最常用的负载均衡是TCP/IP四层模型和OSI七层模型(如下图)

也就是四层LB和七层SLB,有没有种似曾相识的感觉?
2021年7月13日22:52,SRE收到大量服务和域名的接入层不可用报警,客服侧开始收到大量用户反馈B站无法使用,同时内部同学也反馈B站无法打开,甚至APP首页也无法打开。基于报警内容,SRE第一时间怀疑机房、网络、四层LB、七层SLB等基础设施出现问题,紧急发起语音会议,拉各团队相关人员开始紧急处理(为了方便理解,下述事故处理过程做了部分简化)。

没错,Bilibili直接把这两种模型结合起来使用了。
常见的负载均衡算法(CV From知乎)

轮询(Round Robin)
请求到达后,将客户端发送到负载均衡器的请求依次轮流地转发给服务集群的某个节点。
优点:实现简单,每个集群节点平均分担所有的请求。
缺点:当集群中服务器硬件配置不同、性能差别大时,无法区别对待。引出下面的算法。

随机(Random)
随机选取集群中的某个节点来处理该请求,由概率论的知识可知,随着请求量的变大,随机算法会逐渐演变为轮询算法,即集群各个节点会处理差不多数量的请求。

优点:简单使用,不需要额外的配置和算法。
缺点:随机数的特点是在数据量大到一定量时才能保证均衡,所以如果请求量有限的话,可能会达不到均衡负载的要求。

加权
加权算法主要是根据集群的节点对应机器的性能的差异,给每个节点设置一个权重值,其中性能好的机器节点设置一个较大的权重值,而性能差的机器节点则设置一个较小的权重值。权重大的节点能够被更多的选中。它是和随机、轮训一起使用的。
优点:可以根据机器的具体情况,分配不同的负载,达到能者多劳。
缺点:需要额外管理加权系数。

最小连接数
主要是根据集群的每个节点的当前连接数来决定将请求转发给哪个节点,即每次都将请求转发给当前存在最少并发连接的节点。
优点:可以根据集群节点的负载情况来进行请求的动态分发,即机器性能好,处理请求快,积压请求少的节点分配更多的请求。避免某个节点因为处理超过自身所能承受的请求量而导致宕机或者响应过慢。

hash
将对请求的IP地址或者URL计算一个哈希值,然后与集群节点的数量进行取模来决定将请求分发给哪个集群节点。它不是真正意义上的负载均衡,在某些意义上也是一个单点服务。
优点:实现简单
缺点:如果某个节点挂了,会使得一部分流量不可用。

负载均衡分类
负载均衡分为硬件层面的负载均衡的软件负载均衡
硬件层面
目前市面上常见的硬件负载均衡有F5和Array,有点事有专人负责到底,缺点就是过于便宜,不适合我们这种土豪使用,容易被人瞧不起()


确实便宜
软件层面
目前市面上主流的负载均衡软件有Nginx/LVS/HAProxy/Ribbon等,由于是软件层面,所以价格会比较便宜甚至免费

我个人最喜欢Nginx,因为使用挺方便,网上有详细教程

关于负载均衡的其余内容留给大家自行探索吧!因为其余的我也不懂了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
你干嘛~哎哟

0

技术

0

魅力

0

原创

略知一二

Rank: 3Rank: 3

积分
906
人气
3
分享
0
发表于 2023-11-13 12:49:43 | 显示全部楼层
我宝塔装Nginx慢死上次装了7个小时
个人主页:https://blog.zgrhlsmyms.repl.co

0

技术

9

魅力

1

原创

版主

禁止访问

Rank: 7Rank: 7Rank: 7

积分
5899
人气
156
分享
52

最佳新人活跃会员

 楼主| 发表于 2023-11-15 19:21:20 | 显示全部楼层
zgrhlsmyms 发表于 2023-11-13 12:49
我宝塔装Nginx慢死上次装了7个小时

啊这,我电脑很快啊
你干嘛~哎哟
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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