搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
一键难忘520
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
使用SpaCy分词
2
Python3.12.4版本安装、安装并运⾏redis和mongoDB,以及简单的增删改查,启动⽅式,端⼝,logo_python3.12.4安装过程
3
用户画像模型
4
秒杀业务: 简单梳理
5
PHP 实现 word/excel/ppt 转换为 PDF_php docx 转换为pdf
6
Java微信小程序支付篇_wx-java-pay-spring-boot-starter
7
【原创】java+swing+mysql(sqlserver)学生管理系统(增删改查)_swing+数据库
8
【存储】LSM-Tree架构_随机写时b tree的额外开销
9
比较适合物联网的开源数据库_物联网数据库
10
如何使用IDEA工具开发Scala程序?_idea里面怎么写scala
当前位置:
article
> 正文
WEB 集群与负载均衡(一)基本概念_负载均衡在web集群中的作用是什么?
作者:一键难忘520 | 2024-07-13 16:37:28
赞
踩
负载均衡在web集群中的作用是什么?
分针网每日分享:WEB 集群与负载均衡(一)基本概念
Web集群是由多个同时运行同一个web应用的服务器组成,在外界看来就像一个服务器一样,这多台服务器共同来为客户提供更高性能的服务。集群更标准的定义是:一组相互独立的服务器在网络中表现为单一的系统,并以单一系统的模式加以管理,此单一系统为客户工作站提供高可靠性的服务。
而负载均衡的任务就是负责多个服务器之间(集群内)实现合理的任务分配,使这些服务器(集群)不会出现因某一台超负荷、而其他的服务器却没有充分发挥处理能力的情况。负载均衡有两个方面的含义:首先,把大量的并发访问或数据流量分担到多台节点上分别处理,减少用户等待响应的时间;其次,单个高负载的运算分担到多台节点上做并行处理,每个节点设备处理结束后,将结果汇总,再返回给用户,使得信息系统处理能力可以得到大幅度提高
因此可以看出,集群和负载均衡有本质上的不同,它们是解决两方面问题的不同方案,不要混淆。
集群技术可以分为三大类:
1、高性能性集群(HPC Cluster)
2、高可用性集群(HA Cluster)
3、高可扩展性集群
一、高性能性集群(HPC Cluster)
指以提高科学计算能力为目标的集群技术。该集群技术主要用于科学计算,这里不打算介绍,如果感兴趣可以参考相关的资料。
二、高可用性集群(HA Cluster)
指为了使群集的整体服务尽可能可用,减少服务宕机时间为目的的集群技术。如果高可用性集群中的某节点发生了故障,那么这段时间内将由其他节点代替它的工作。当然对于其他节点来讲,负载相应的就增加了。
为了提高整个系统的可用性,除了提高计算机各个部件的可靠性以外,一般情况下都会采用该集群的方案。
对于该集群方案,一般会有两种工作方式:
①主-主(Active-Active)工作方式
这是最常用的集群模型,它提供了高可用性,并且在只有一个节点时也能提供可以接受的性能,该模型允许最大程度的利用硬件资源。每个节点都通过网络对客户机提供资源,每个节点的容量被定义好,使得性能达到最优,并且每个节点都可以在故障转移时临时接管另一个节点的工作。所有的服务在故障转移后仍保持可用,但是性能通常都会下降。
这是目前运用最为广泛的双节点双应用的Active/Active模式。
支撑用户业务的应用程序在正常状态下分别在两台节点上运行,各自有自己的资源,比如IP地址、磁盘阵列上的卷或者文件系统。当某一方的系统或者资源出现故障时,就会将应用和相关资源切换到对方的节点上。
这种模式的最大优点是不会有服务器的“闲置”,两台服务器在正常情况下都在工作。但如果有故障发生导致切换,应用将放在同一台服务器上运行,由于服务器的处理能力有可能不能同时满足数据库和应用程序的峰值要求,这将会出现处理能力不够的情况,降低业务响应水平。
②主-从(Active-Standby)工作方式
为了提供最大的可用性,以及对性能最小的影响,主-从工作方式需要一个在正常工作时处于备用状态的节点,主节点处理客户机的请求,而备用节点处于空闲状态,当主节点出现故障时,备用节点会接管主节点的工作,继续为客户机提供服务,并且不会有任何性能上影响。
两节点的Active/Standby模式是HA中最简单的一种,两台服务器通过双心跳线路组成一个集群。应用Application联合各个可选的系统组件如:外置共享的磁盘阵列、文件系统和浮动IP地址等组成业务运行环境。
PCL为此环境提供了完全冗余的服务器配置。这种模式的优缺点:
缺点:Node2在Node1正常工作时是处于“闲置”状态,造成服务器资源的浪费。
优点:当Node1发生故障时,Node2能完全接管应用,并且能保证应用运行时的对处理能力要求。
三、高可扩展性集群
这里指带有负载均衡策略(算法)的服务器群集技术。带负载均衡集群为企业需求提供了更实用的方案,它使负载可以在计算机集群中尽可能平均地分摊处理。而需要均衡的可能是应用程序处理负载或是网络流量负载。该方案非常适合于运行同一组应用程序的节点。每个节点都可以处理一部分负载,并且可以在节点之间动态分配负载, 以实现平衡。对于网络流量也是如此。通常,单个节点对于太大的网络流量无法迅速处理,这就需要将流量发送给在其它节点。还可以根据每个节点上不同的可用资源或网络的特殊环境来进行优化。
负载均衡集群在多节点之间按照一定的策略(算法)分发网络或计算处理负载。负载均衡建立在现有网络结构之上,它提供了一种廉价有效的方法来扩展服务器带宽,增加吞吐量,提高数据处理能力,同时又可以避免单点故障。
负载均衡可以采用软件和硬件来实现。一般的框架结构可以参考下图。
后台的多个Web节点上面有相同的Web应用,用户的访问请求首先进入负载均衡分配节点(可能是软件或者硬件),由它根据负载均衡策略(算法)合理地分配给某个Web应用节点。每个Web节点相同的内容做起来不难,所以选择负载均衡策略(算法)是个关键问题。下面会专门介绍均衡算法。
web负载均衡的作用就是把请求均匀的分配给各个节点,它是一种动态均衡,通过一些工具实时地分析数据包,掌握网络中的数据流量状况,把请求理分配出去。对于不同的应用环境(如电子商务网站,它的计 算负荷大;再如网络数据库应用,读写频繁,服务器的存储子系统系统面临很大压力;再如视频服务应用,数据传输量大,网络接口负担重压。),使用的均衡策略(算法)是不同的。 所以均衡策略(算法)也就有了多种多样的形式,广义上的负载均衡既可以设置专门的网关、负载均衡器,也可以通过一些专用软件与协议来实现。在OSI七层协议模型中的第二(数据链路层)、第三(网络层)、第四(传输层)、第七层(应用层)都有相应的负载均衡策略(算法),在数据链路层上实现负载均衡的原理是根据数据包的目的MAC地址选择不同的路径;在网络层上可利用基于IP地址的分配方式将数据流疏通到多个节点;而传输层和应用层的交换(Switch),本身便是一种基于访问流量的控制方式,能够实现负载均衡。
目前,基于负载均衡的算法主要有三种:轮循(Round-Robin)、最小连接数(Least Connections First),和快速响应优先(Faster Response Precedence)。
①轮循算法,就是将来自网络的请求依次分配给集群中的节点进行处理。
②最小连接数算法,就是为集群中的每台服务器设置一个记数器,记录每个服务器当前的连接数,负载均衡系统总是选择当前连接数最少的服务器分配任务。 这要比"轮循算法"好很多,因为在有些场合中,简单的轮循不能判断哪个节点的负载更低,也许新的工作又被分配给了一个已经很忙的服务器了。
③快速响应优先算法,是根据群集中的节点的状态(CPU、内存等主要处理部分)来分配任务。 这一点很难做到,事实上到目前为止,采用这个算法的负载均衡系统还很少。尤其对于硬件负载均衡设备来说,只能在TCP/IP协议方面做工作,几乎不可能深入到服务器的处理系统中进行监测。但是它是未来发展的方向。
上面是负载均衡常用的算法,基于以上负载均衡算法的使用方式上,又分为如下几种:
1、DNS轮询
最早的负载均衡技术是通过DNS来实现的,在DNS中为多个地址配置同一个名字,因而查询这个名字的客户机将得到其中一个地址,从而使得不同的客户访问不同的服务器,达到负载均衡的目的。
DNS负载均衡是一种简单而有效的方法,但是它不能区分服务器的差异,也不能反映服务器的当前运行状态。当使用DNS负载均衡的时候,必须尽量保证不同的 客户计算机能均匀获得不同的地址。由于DNS数据具备刷新时间标志,一旦超过这个时间限制,其他DNS服务器就需要和这个服务器交互,以重新获得地址数 据,就有可能获得不同IP地址。因此为了使地址能随机分配,就应使刷新时间尽量短,不同地方的DNS服务器能更新对应的地址,达到随机获得地址,然而将过 期时间设置得过短,将使DNS流量大增,而造成额外的网络问题。DNS负载均衡的另一个问题是,一旦某个服务器出现故障,即使及时修改了DNS设置,还是 要等待足够的时间(刷新时间)才能发挥作用,在此期间,保存了故障服务器地址的客户计算机将不能正常访问服务器
2、反向代理服务器
使用代理服务器,可以将请求转发给内部的服务器,使用这种加速模式显然可以提升静态网页的访问速度。然而,也可以考虑这样一种技术,使用代理服务器将请求均匀转发给多台服务器,从而达到负载均衡的目的。
这种代理方式与普通的代理方式有所不同,标准代理方式是客户使用代理访问多个外部服务器,而这种代理方式是代理多个客户访问内部服务器,因此也被称为反向代理模式。虽然实现这个任务并不算是特别复杂,然而由于要求特别高的效率,实现起来并不简单。
使用反向代理的好处是,可以将负载均衡和代理服务器的高速缓存技术结合在一起,提供有益的性能。然而它本身也存在一些问题,首先就是必须为每一种服务都专门开发一个反向代理服务器,这就不是一个轻松的任务。
代理服务器本身虽然可以达到很高效率,但是针对每一次代理,代理服务器就必须维护两个连接,一个对外的连接,一个对内的连接,因此对于特别高的连接请求, 代理服务器的负载也就非常之大。反向代理方式下能应用优化的负载均衡策略,每次访问最空闲的内部服务器来提供服务。但是随着并发连接数量的增加,代理服务 器本身的负载也变得非常大,最后反向代理服务器本身会成为服务的瓶颈。
3、地址转换网关
支持负载均衡的地址转换网关,可以将一个外部IP地址映射为多个内部IP地址,对每次TCP连接请求动态使用其中一个内部地址,达到负载均衡的目的。很多 硬件厂商将这种技术集成在他们的交换机中,作为他们第四层交换的一种功能来实现,一般采用随机选择、根据服务器的连接数量或者响应时间进行选择的负载均衡 策略来分配负载。由于地址转换相对来讲比较接近网络的低层,因此就有可能将它集成在硬件设备中,通常这样的硬件设备是局域网交换机。
本文转自:
http://www.f-z.cn/id/299
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/一键难忘520/article/detail/820490
推荐阅读
article
论文
阅读——
DINOv
...
对通用分割,训练阶段和推理阶段不太一样。Os是解码的分割查询特征(segmentation query features...
赞
踩
article
Python
中使用`
writelines
`
函数
写入
文件
内容_
python
writelines
函数
用...
函数
来创建一个
文件
对象,并指定
文件
的名称和打开模式。
函数
不会自动在每行的末尾添加换行符,因此在每行文本的末尾我们需要手动...
赞
踩
article
ICRA
2024:
NVIDIA
联合多伦多大学、
加州大学
伯克利分校
、苏黎世联邦
理工学院
等研究人员...
NVIDIA
联合多伦多大学、
加州大学
伯克利分校
、苏黎世联邦
理工学院
和佐治亚
理工学院
的研究人员开发了 ORBIT-Sur...
赞
踩
article
数据结构
与
算法
之
最小
生成
树
算法
_
生成
树
边
的
最大
权值
达到
最小
算法
设计...
数据结构
与
算法
之
最小
生成
树
算法
的
实现与代码解析,包括C、C++和Java语言
的
实现方式和代码示例。
最小
生成
树
算法
是用来求...
赞
踩
article
LVS
实验...
LVS
管理集群部署实验
LVS
实验
LVS
实验 nginx...
赞
踩
article
【
手势
识别
】基于
matlab
肤色
静态
手势
识别
【含
Matlab
源码 288期】...
肤色
静态
手势
识别
完整代码,直接运行,适合小白!可提供运行操作视频!_
静态
手势
识别
静态
手势
识别
...
赞
踩
article
Pod
一直处于
CrashLoopBackOff
状态
的排查思路
_
crashloopbackoff
po...
Pod
启动失败原因分析
_
crashloopbackoff
pod
状态
crashloopbackoff
pod
状态
...
赞
踩
article
Linux
集群
总结 +
LVS
(负载均衡器)原理及
配置
_
linux
集群
配置
实验总结...
一、
集群
相关概念1.
集群
是什么?
集群
是一组协同工作的服务器,对外表现为一个整体。
集群
的意义:更好的利用现有资源实现服务的...
赞
踩
article
Mac M1/M2
安装
Windows
11
虚拟机
【超详细】_
mac
安装
windows
虚拟机
教程...
本文介绍了如何在Mac上使用VMwareFusion
安装
Windows
ARM架构的
虚拟机
,包括镜像源选择、
安装
步骤、配置...
赞
踩
article
多益
网络
校招
笔试
题(
前端
工程师
)_
多益
网络
前端
开发
观点题...
写出inline和inline-block的差别:布局方式相同,唯一的区别在inline-block可以设置宽高,inl...
赞
踩
article
CRM
客户
关系
管理
系统
,完整
系统
(附源码)_
客户
管理
crm
系统
開源...
一、前言利用软件、硬件和网络技术,为企业建立一个
客户
信息收集、
管理
、分析和利用的信息
系统
。以
客户
数据的
管理
为核心,记录企...
赞
踩
article
FPGA
之
逻辑
单元
(
Logic
Cells)_
fpga
逻辑
单元
...
本文介绍了
FPGA
中的
逻辑
单元
(LUTs)作为可编程
逻辑
资源,包括其内部查找表、触发器、可编程连接以及它们在实现复杂数字...
赞
踩
article
【
目标
检测】基于
yolov4
训练
自己
的
数据
集(附代码和
数据
集,保姆级
教程
)...
手把手系列
教程
:基于
yolov4
训练
自己
的
数据
集(保姆级
教程
)_
yolov4
训练
自己
的
数据
yolov4
训练
自己
的
数据
...
赞
踩
article
yolov4
实战
训练
数据
_
yolov4
权重怎么下载...
1、
训练
:darknet.exe detector train jht
_
data\voc
_
num.data cfg\yo...
赞
踩
article
微信小程序
:
分享
转发
onShareAppMessage
_
onshareappmessage
中
的
ta...
监听用户点击页面内
转发
按钮(button 组件 open-type=“share”)或右上角菜单“
转发
”按钮
的
行为,并自...
赞
踩
article
android
文件
存储
调试细节(小米系统)_
getexternalstoragedirectory
...
android
文件
永久
存储
一共有两个位置,内部
存储
和外部
存储
,这里的
存储
是指ROM(断电仍保持记忆),不是运行内存(RA...
赞
踩
article
Python3
(13):
python3
+
requests
+
unittest
接口
自动化测试框架_uni...
python+
requests
+
unittest
接口
自动化测试框架[之前写的文章,写在博客上,记录下来。]前言:
接口
测...
赞
踩
article
深入探讨
Vue
.
js
:从基础
到
高级
(
最佳实践
)
...
Vue
组件是
Vue
应用程序的构建块,它将UI拆分为独立、可复用的模块。每个组件可以有自己的模板、样式和逻辑。// 定义一...
赞
踩
article
达闼GDC 2023
全球
开发者
大会重磅发布
海睿
AGI
平台
,共建具身
智能
新生态!...
近年来,人形机器人赛道上,波士顿动力、特斯拉、达闼等各家企业不断展示最新成果,让人们看到了机器人行业蓬勃的生命力。近日,...
赞
踩
article
Multimodal
Foundation
Models
:
From
Specialists to ...
近年来,人工智能领域在模型发展方面经历4个阶段,如图1所示。任务特定的模型是针对单个数据集和任务开发的,通常从零开始训练...
赞
踩
相关标签
深度学习
人工智能
python
java
前端
Python
机器人
算法
php
开发语言
lvs
服务器
网络
matlab
docker
容器
运维
kubernetes
linux
负载均衡
macos
前端笔试
css
浏览器
javascript