您当前的位置:首页 > 电脑百科 > 网络技术 > 网络技术

高并发之负载均衡

时间:2022-09-21 11:13:49  来源:  作者:开源字节


 

面对大量用户访问、高并发请求,海量数据,可以使用高性能的服务器、大型数据库,存储设备,高性能Web服务器,采用高效率的编程语言比如(JAVA)等,当单机容量达到极限时,我们需要考虑业务拆分和分布式部署,来解决大型网站访问量大,并发量高,海量数据的问题。

从单机网站到分布式网站,很重要的区别是业务拆分和分布式部署,将应用拆分后,部署到不同的机器上,实现大规模分布式系统。分布式和业务拆分解决了,从集中到分布的问题,但是每个部署的独立业务还存在单点的问题和访问统一入口问题,为解决单点故障,我们可以采取冗余的方式。将相同的应用部署到多台机器上。解决访问统一入口问题,我们可以在集群前面增加负载均衡设备,实现流量分发。

负载均衡(Load Balance),意思是将负载(工作任务,访问请求)进行平衡、分摊到多个操作单元(服务器,组件)上进行执行。是解决高性能,单点故障(高可用),扩展性(水平伸缩)的终极解决方案。

负载均衡原理

系统的扩展可分为纵向(垂直)扩展和横向(水平)扩展。纵向扩展,是从单机的角度通过增加硬件处理能力,比如CPU处理能力,内存容量,磁盘等方面,实现服务器处理能力的提升,不能满足大型分布式系统(网站),大流量,高并发,海量数据的问题。因此需要采用横向扩展的方式,通过添加机器来满足大型网站服务的处理能力。比如:一台机器不能满足,则增加两台或者多台机器,共同承担访问压力。这就是典型的集群和负载均衡架构:如下图:


 

负载均衡的方式

1.应用集群:将同一应用部署到多台机器上,组成处理集群,接收负载均衡设备分发的请求,进行处理,并返回相应数据。

2.负载均衡设备:将用户访问的请求,根据负载均衡算法,分发到集群中的一台处理服务器。(一种把网络请求分散到一个服务器集群中的可用服务器上去的设备)

负载均衡的作用(解决的问题)

1.解决并发压力,提高应用处理性能(增加吞吐量,加强网络处理能力);

2.提供故障转移,实现高可用;

3.通过添加或减少服务器数量,提供网站伸缩性(扩展性);

4.安全防护;(负载均衡设备上做一些过滤,黑白名单等处理)

负载均衡分类

根据实现技术不同,可分为DNS负载均衡,HTTP负载均衡,IP负载均衡,链路层负载均衡等。

DNS负载均衡

最早的负载均衡技术,利用域名解析实现负载均衡,在DNS服务器,配置多个A记录,这些A记录对应的服务器构成集群。大型网站总是部分使用DNS解析,作为第一级负载均衡。如下图:


 

优点

使用简单:负载均衡工作,交给DNS服务器处理,省掉了负载均衡服务器维护的麻烦

提高性能:可以支持基于地址的域名解析,解析成距离用户最近的服务器地址,可以加快访问速度,改善性能;

缺点

可用性差:DNS解析是多级解析,新增/修改DNS后,解析时间较长;解析过程中,用户访问网站将失败;

扩展性低:DNS负载均衡的控制权在域名商那里,无法对其做更多的改善和扩展;

维护性差:也不能反映服务器的当前运行状态;支持的算法少;不能区分服务器的差异(不能根据系统与服务的状态来判断负载)

实践建议

将DNS作为第一级负载均衡,A记录对应着内部负载均衡的IP地址,通过内部负载均衡将请求分发到真实的Web服务器上。一般用于互联网公司,复杂的业务系统不合适使用。如下图:


 

IP负载均衡

在网络层通过修改请求目标地址进行负载均衡。

用户请求数据包,到达负载均衡服务器后,负载均衡服务器在操作系统内核进程获取网络数据包,根据负载均衡算法得到一台真实服务器地址,然后将请求目的地址修改为,获得的真实ip地址,不需要经过用户进程处理。

真实服务器处理完成后,响应数据包回到负载均衡服务器,负载均衡服务器,再将数据包源地址修改为自身的ip地址,发送给用户浏览器。如下图:


 

IP负载均衡,真实物理服务器返回给负载均衡服务器,存在两种方式:(1)负载均衡服务器在修改目的ip地址的同时修改源地址。将数据包源地址设为自身盘,即源地址转换(snat)。(2)将负载均衡服务器同时作为真实物理服务器集群的网关服务器。

优点 :在内核进程完成数据分发,比在应用层分发性能更好;

缺点:所有请求响应都需要经过负载均衡服务器,集群最大吞吐量受限于负载均衡服务器网卡带宽;

链路层负载均衡

在通信协议的数据链路层修改mac地址,进行负载均衡。

数据分发时,不修改ip地址,指修改目标mac地址,配置真实物理服务器集群所有机器虚拟ip和负载均衡服务器ip地址一致,达到不修改数据包的源地址和目标地址,进行数据分发的目的。

实际处理服务器ip和数据请求目的ip一致,不需要经过负载均衡服务器进行地址转换,可将响应数据包直接返回给用户浏览器,避免负载均衡服务器网卡带宽成为瓶颈。也称为直接路由模式(DR模式)。如下图:


 

优点:性能好;

缺点:配置复杂;

实践建议:DR模式是目前使用最广泛的一种负载均衡方式

混合型负载均衡

由于多个服务器群内硬件设备、各自的规模、提供的服务等的差异,可以考虑给每个服务器群采用最合适的负载均衡方式,然后又在这多个服务器群间再一次负载均衡或群集起来以一个整体向外界提供服务(即把这多个服务器群当做一个新的服务器群),从而达到最佳的性能。将这种方式称之为混合型负载均衡。

此种方式有时也用于单台均衡设备的性能不能满足大量连接请求的情况下。是目前大型互联网公司,普遍使用的方式。

方式一,如下图:


 

以上模式适合有动静分离的场景,反向代理服务器(集群)可以起到缓存和动态请求分发的作用,当时静态资源缓存在代理服务器时,则直接返回到浏览器。如果动态页面则请求后面的应用负载均衡(应用集群)。

方式二,如下图:


 

以上模式,适合动态请求场景。

因混合模式,可以根据具体场景,灵活搭配各种方式,以上两种方式仅供参考。

常见负载均衡服务器

平时我们常用的有四层负载均衡和七层负载均衡,四层的负载均衡是基于IP和端口实现的,七层的负载均衡是在四层的基础上,基于URL等信息实现。

四层负载均衡

LVS:重量级软件,本身不支持正则表达式,部署起来比较麻烦,但是性能高,应用范围广,一般的大型互联网公司都有用到。

HAProxy:轻量级软件,支持的负载均衡策略非常多,较灵活。

Nginx:轻量级软件,支持的协议少(HTTP、HTTPS和Email协议),对于Session支持不友好。

七层负载均衡

HAProxy:全面支持七层代理,灵活性高,支持Session会话保持。

Nginx:可以针对HTTP应用进行分流,正则规则灵活,支持高并发,部署简单。

Apache:性能较差,一般不考虑。

MySQL Proxy:官方的数据库中间件,可以实现读写分离,负载均衡等功能,但是对分表分库支持不完善(可选替代品:Atlas,Cobar,TDDL)。

常见的负载均衡算法

1.轮询法(Round Robin)

2.加权轮询法(Weight Round Robin)

3.平滑加权轮询法(Smooth Weight Round Robin)

4.随机法(Random)

5.加权随机法(Weight Random)

6.源地址哈希法(Hash)

7.最小连接数法(Least Connections)

 

如若转载,请注明出处:开源字节 https://sourcebyte.cn/article/234.html


Tags:   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
最近,微信键盘更新,升级到0.9.2测试版。此前,微信键盘从0.9.0版升级到0.9.1版后,安装包从155MB降到了118MB。本次0.9.2版更新后,安装包体积再次缩小,降到112.9MB。本次更新增加的...【详细内容】
2022-09-22  Tags:   点击:(0)  评论:(0)  加入收藏
微软的office是需要购买激活office的密钥的,有时候office激活会提示产品激活失败,那么我们该如何处理呢?这里小编就给大家讲解一下。microsoft office产品激活失败怎么办?产品...【详细内容】
2022-09-22  Tags:   点击:(2)  评论:(0)  加入收藏
人民银行广州分行近日下发文件指出,为进一步探索因城施策用足用好政策工具箱,支持刚性和改善性住房需求,鼓励推广二手房“带押过户”模式。另据中原地产研究院统计数据显示,全国...【详细内容】
2022-09-22  Tags:   点击:(0)  评论:(0)  加入收藏
本文源自:中国经济网9月20日,《抖音2022丰收数据报告》发布(以下简称“报告”)。报告显示,过去一年抖音新增乡村相关短视频4.3亿条,乡村题材短视频播放量增长77%,384亿人次为短视...【详细内容】
2022-09-22  Tags:   点击:(1)  评论:(0)  加入收藏
 继新生开学季“原来大学才是努力的开始”登上微博热搜之后,“逆向考研”成为近期热点话题。  “逆向考研”折射的现实是,对当代大学生而言,“上了大学会比高中轻松”只是中...【详细内容】
2022-09-22  Tags:   点击:(0)  评论:(0)  加入收藏
9月16日,10年期中美利差倒挂至74个基点,人民币汇率的贬值压力不言而喻,人民币对美元一度冲到7.0254。人民币对美元汇率“破7”,立刻引起了全市场的关注。今年以来(截至9月16日,下...【详细内容】
2022-09-22  Tags:   点击:(2)  评论:(0)  加入收藏
[环球时报-环球网报道 记者白云怡 赵觉珵]21日,俄罗斯总统普京发表全国讲话,宣布在俄启动部分动员令,这是俄罗斯在二战后首次进行动员。此前一天,顿涅茨克、卢甘斯克以及乌克兰...【详细内容】
2022-09-22  Tags:   点击:(0)  评论:(0)  加入收藏
  欢迎关注“新浪科技”的微信订阅号:techsina   作者 | 李秋涵 编辑 | 魏佳  来源:深燃  5月份离职后,4个月时间里张磊已经去过西藏、昆明、大理、上海、武汉、成都6...【详细内容】
2022-09-22  Tags:   点击:(2)  评论:(0)  加入收藏
特斯拉的打法,不是硬件赚钱。  欢迎关注“新浪科技”的微信订阅号:techsina   文/潘磊  来源:创业邦(ID:ichuangyebang)  特斯拉又变成了“价格屠夫”。  一份已经...【详细内容】
2022-09-22  Tags:   点击:(0)  评论:(0)  加入收藏
今天,苹果开发者测试版推送了iOS 16.1 Beta 2版本,终于修复了烦人的复制粘贴弹窗。用户主动粘贴时,不再需要明确批准是否允许粘贴。对于正式版用户,预计苹果将在下周推送修复这...【详细内容】
2022-09-22  Tags:   点击:(1)  评论:(0)  加入收藏
▌简易百科推荐
面对大量用户访问、高并发请求,海量数据,可以使用高性能的服务器、大型数据库,存储设备,高性能Web服务器,采用高效率的编程语言比如(Java)等,当单机容量达到极限时,我们需要考虑...【详细内容】
2022-09-21  开源字节     Tags:   点击:(0)  评论:(0)  加入收藏
选择最优秀的 DNS 服务器,不仅为你提供安全的上网环境,而且还能加速你的网速。目前互联网上提供了大量匿名、公共、免费的 DNS 服务器,因此挑选适合自己的最佳选项可能并不简单...【详细内容】
2022-09-21  cnBeta.COM     Tags:DNS服务器   点击:(0)  评论:(0)  加入收藏
一般来说,整个内网只能上QQ和微信,基本上就是DNS的问题了,比如说,域控服务器上面的DNS转发失效了,那就会出现这样的故障,除非DHCP服务给客户端下发DNS服务器的时候,把内网DNS服务器...【详细内容】
2022-09-19  IT狂人日志     Tags:打不开网页   点击:(0)  评论:(0)  加入收藏
CDN(Content Delivery Network) 内容分发网络。使用户就近获取所需内容,降低网络拥塞,提高响应速度。网络空间搜索引擎分析下网站关键元素信息 域名 ip title icp logo body以佛...【详细内容】
2022-09-16  至察助安  今日头条  Tags:IP地址   点击:(15)  评论:(0)  加入收藏
之前聊过暴露服务器到外网,比如有公网IP通过NAT或DMZ方式暴露机器到公网,那还多余搭建VPN干啥, 从某些角度看确实有相同的地方,比如都可以从外网访问到内网机器,但是VPN更像...【详细内容】
2022-09-15  我叫陶光耀  今日头条  Tags:VPN   点击:(14)  评论:(0)  加入收藏
MasqueradingPOD的IPv4地址是典型的RFC1918私有地址块,因此不可公开路由。cilium将自动将离开群集的所有流量的源IP地址伪装为节点的IPv4地址,因为节点的IP地址已经在网络上可...【详细内容】
2022-09-15  煮酒论架构  今日头条  Tags:cilium   点击:(18)  评论:(0)  加入收藏
早上接到求助,说是电脑开机就没显示共享网盘,无法访问文件服务器上的共享文件夹了。废话不多说,直接远程登录客户的电脑,手动输入共享路径,提示无法找到网络路径。此时电脑上网正...【详细内容】
2022-09-15   IT狂人日志    Tags:共享盘   点击:(0)  评论:(0)  加入收藏
平时,我们想要知道,自己的机器到目的机器之间,网络通不通,一般会执行Ping命令。一般对于状况良好的网络来说,你能看到它对应的loss丢包率为0%,也就是所谓的能ping通。如果看到丢包...【详细内容】
2022-09-14  互联共商   网易号  Tags:网络不通   点击:(70)  评论:(0)  加入收藏
宁波电信宽带每过4天,IPV6就不好用了,原来是宽带运营商强制4天重置拨号。通过外网拨号日志就可以看到,2022-9-6 16:59:08重新拨号了,2022-9-2 16:58:58重新拨号了,后面一样的规律...【详细内容】
2022-09-13  科技资料库     Tags:IPV6   点击:(20)  评论:(0)  加入收藏
websokct 使用 netty 实现websocket 是一个全双工的长连接通讯话不多说直接上代码。。服务端的代码实现public void init() throws InterruptedException { EventLoo...【详细内容】
2022-09-12  一个程序员小哥哥    Tags:webSocket   点击:(13)  评论:(0)  加入收藏
相关文章
    无相关信息
站内最新
站内热门
站内头条