集群、分布式、负载均衡的区别

集群集群的概念计算机集群通过一组松散集成的计算机软件和/或硬件连接起来高度紧密地协作完成计算工作。在某种意义上,他们可以被看作是一台计算机。集群系统中的单个计算

大家好,关于集群、分布式、负载均衡的区别很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!

例如,将单个重负载操作分发到多个节点设备进行并行处理。各节点设备完成处理后,将结果汇总并返回给用户。系统处理能力大大提高。一般分为几种:

高可用集群:一般来说,当集群中的某个节点发生故障时,其上的任务会自动转移到其他正常的节点上。这也意味着集群中的节点可以保持离线状态,然后再次上线。这个过程不会影响整个集群的运行。负载均衡集群:负载均衡集群运行时,一般会通过一个或多个前端负载均衡器将工作负载分配到一组后端服务器上,从而实现整个系统的高性能和高可用性。高性能计算集群:高性能计算集群通过将计算任务分配到集群中的不同计算节点来提高计算能力,因此主要应用于科学计算领域。

分布式

集群:同一业务部署在多台服务器上。分布式:一个业务被拆分为多个子业务,或者是不同的业务部署在不同的服务器上。

简单来说,分布式通过缩短单个任务的执行时间来提高效率,而集群则通过增加单位时间内执行的任务数量来提高效率。举个例子:以新浪网为例,如果访问的人比较多,可以创建一个集群,前面放一台平衡服务器,后面放几台服务器来完成同样的业务。如果有业务访问,响应服务器会看哪台服务器负载不重。如果任务重,就会分配给谁来完成任务。如果一台服务器崩溃,其他服务器可以恢复正常。每个分布式节点完成不同的服务。如果一个节点崩溃,业务可能会失败。

负载均衡

概念

随着业务量的增加,现网各核心部分的访问量和数据流量迅速增加,其处理能力和计算强度也相应增加,单一服务器设备无法承受。在这种情况下,如果扔掉现有的设备,做大量的硬件升级,这会造成现有资源的浪费,而如果面临下一次业务量的增加,这又会导致再次硬件升级的成本很高。成本投入,即使是最优秀的设备也无法满足当前业务增长的需求。

系统扩展可分为垂直(vertical)扩展和水平(horizontal)扩展。垂直扩展是从单机角度通过增加硬件处理能力来增加服务器的处理能力,如CPU处理能力、内存容量、磁盘等,无法满足大型分布式系统(网站)的需求、大流量、高并发、海量。数据问题。因此,需要采用增加机器的水平扩展方式来满足大型网站服务的处理能力。例如,如果一台机器无法满足需求,则添加两台或多台机器来分担访问压力。

负载均衡最重要的应用之一是使用多个服务器来提供单一服务。该解决方案有时称为服务器场。通常,负载均衡主要应用于Web网站、大型Internet中继聊天网络、高流量的文件下载网站、NNTP(网络新闻传输协议)服务和DNS服务。现在负载均衡器也开始支持数据库服务,称为数据库负载均衡器。

服务器负载均衡具有三个基本特征:负载均衡算法、健康检查和会话维护。这三个特征是保证负载均衡正常运行的基本要素。其他一些功能都是在这三个功能的基础上的一些深化。下面我们详细介绍一下各个功能的功能和原理。

在部署负载均衡设备之前,用户直接访问服务器地址(服务器地址可能映射到防火墙上的其他地址,但本质上是一对一访问)。当单台服务器因性能不足而无法处理众多用户的访问时,就需要考虑使用多台服务器来提供服务。实现这一点的方法就是负载均衡。负载均衡设备的实现原理是将多台服务器的地址映射到一个外部服务IP(我们通常称之为VIP。对于服务器映射,可以直接将服务器IP映射到VIP地址,也可以将服务器映射到VIP地址) IP:端口到VIP:端口,不同的映射方式会进行相应的健康检查,端口映射时,服务器端口和VIP端口可以不同。这个过程对于用户来说是不可见的。用户实际上并不知道服务器是否负载均衡。因为他们访问的仍然是同一个目的IP,所以用户的访问到达负载均衡设备后,负载均衡设备的工作就是将用户的访问分发到合适的服务器上。具体来说就是使用上面提到的三个主要的。特征。

我们来详细分析一下:的访问过程

用户(IP:207.17.117.20)访问域名www.a10networks.com。首先通过DNS查询解析出该域名的公网地址:199.237.202.124。接下来,用户207.17.117.20访问地址199.237.202.124,那么数据包就会到达负载均衡设备,然后负载均衡设备会将数据包分发到相应的服务器上,见下图:

负载均衡算法

一般来说,负载均衡设备默认支持多种负载均衡分配策略,例如:

轮询(RoundRobin)以循环顺序向每个服务器发送请求。当其中一台服务器出现故障时,AX将其从顺序循环队列中取出,不参与下一次轮询,直到恢复正常。比率:为每个服务器分配一个加权值作为比率。根据这个比例,将用户的请求分配到各个服务器。当其中一台服务器出现故障时,AX将其从服务器队列中取出,并且不参与下一个用户请求的分发,直到恢复正常。优先级:对所有服务器进行分组,为每个组定义优先级,将用户请求分配给优先级最高的服务器组(同一组内,使用预设的轮询或比率算法来分配用户请求);当最高优先级的所有服务器或指定数量的服务器出现故障时,AX会将请求发送到较低优先级的服务器组。这种方法实际上为用户提供了一种热备份的方法。最少连接:AX会记录每个服务器或服务端口当前的连接数,新的连接将传递到连接数最少的服务器。当其中一台服务器出现故障时,AX将其从服务器队列中取出,并且不参与下一个用户请求的分发,直到恢复正常。快速响应时间:新连接将传递到响应最快的服务器。当其中一台服务器出现故障时,AX将其从服务器队列中取出,并且不参与下一个用户请求的分发,直到恢复正常。健康检查

集群、分布式、负载均衡的区别

会话保持

会话保持用于保持会话的连续性和一致性。由于服务器之间很难实时同步用户访问信息,这就需要将用户前后的访问会话保存在一台服务器上进行处理。例如,当用户访问电子商务网站时,第一服务器处理用户的登录,而用户的商品购买则由第二服务器处理。由于第二服务器不知道用户的信息,所以这次购买不会成功。这种情况下就需要会话维护,所有用户操作都必须由第一台服务器处理才能成功。当然,并非所有访问都需要会话维护。例如,如果服务器提供网站的新闻频道等静态页面,并且每个服务器的内容相同,则这种访问不需要会话维护。

大多数负载均衡产品支持两种基本类型的会话持久方法:源/目标地址会话持久和cookie会话持久。另外,hash、URL Persist等也是常用的方法,但并不是所有设备都支持。必须根据不同的应用配置不同的会话保持,否则会导致负载不平衡甚至访问异常。我们主要分析B/S结构的会话维护。

基于B/S结构的应用:

对于普通B/S结构的应用内容,例如网站的静态页面,不需要配置任何会话保持。但对于基于B/S结构的业务系统,尤其是中间件平台,必须配置会话保持。一般来说,接下来我们配置源地址会话保持就可以满足需求,但考虑到客户端可能存在上述不利于源地址会话保持的环境,使用Cookie会话保持是一种更好的方式。 Cookie会话持久将负载均衡设备选择的服务器信息保存在cookie中并发送给客户端。当客户端继续访问时,就会带上cookie。负载均衡器分析cookie 以保留与先前选择的服务器的会话。 Cookie 分为文件Cookie 和内存Cookie。文件cookie 存储在客户端计算机的硬盘上。只要cookie文件没有过期,无论浏览器是否重复关闭,它都可以保留在同一台服务器上。内存cookies将cookie信息存储在内存中。 cookie的生存时间从浏览器打开时开始,到浏览器关闭时结束。由于目前的浏览器对cookie有一定的默认安全设置,一些客户端可能会规定不允许使用文件cookie,所以目前的应用程序开发大多使用内存cookie。

然而,记忆cookies并不是万能的。例如,浏览器可能出于安全原因完全禁用cookie,从而使cookie会话保留失去作用。我们可以通过Session-id来实现会话持久化,即使用session-id作为url参数或者放在隐藏字段input type=’hidden’中,然后分析Session-id进行分发。

基于源/目的地址的会话保持并不容易使用,因为客户可能通过DHCP、NAT或Web代理连接到Internet,并且他们的IP地址可能会频繁变化,这使得该解决方案的服务质量得不到保证。

NAT(Network Address Translation,网络地址转换) : 当私有网络内的某些主机已经分配了本地IP 地址(即仅在该私有网络内部使用的私有地址),但现在想要与Internet 上的主机通信时(加密不需要),可以使用NAT方式。这种方法需要在连接私网和Internet的路由器上安装NAT软件。装有NAT软件的路由器称为NAT路由器,它至少有一个有效的外部全局IP地址。这样,所有使用本地地址的主机与外界通信时,都必须在NAT路由器上将其本地地址转换为全局IP地址,然后才能连接到Internet。

负载平衡的其他好处

高扩展性

通过添加或减少服务器数量,可以更好地处理高并发请求。

(服务器)健康检查

负载均衡器可以检查后端服务器应用层的健康状况,并将故障服务器从服务器池中移除,以提高可靠性。

TCP 连接重用

TCP连接复用技术将前端多个客户端的HTTP请求复用到后端与服务器之间建立的TCP连接。该技术可以大大降低服务器的性能负载,减少与服务器建立新的TCP连接所带来的延迟,最大限度地减少客户端向后端服务器的并发连接请求数,减少服务器的资源占用。

一般情况下,客户端在发送HTTP请求之前,需要与服务器进行TCP三向握手,建立TCP连接,然后发送HTTP请求。服务器收到HTTP请求后进行处理,并将处理结果返回给客户端。然后客户端和服务器端互相发送FIN,收到FIN的ACK确认后关闭连接。这样,一个简单的HTTP请求就需要十多个TCP数据包来处理。

集群、分布式、负载均衡的区别

使用TCP连接复用技术后,客户端(如ClientA)与负载均衡设备进行三次握手并发送HTTP请求。负载均衡设备收到请求后,会检测服务器上是否有空闲的长连接。如果不存在,服务器将建立一个新的连接。当HTTP请求响应完成后,客户端与负载均衡设备协商关闭连接,负载均衡设备维持与服务器的连接。当另一个客户端(如ClientB)需要发送HTTP请求时,负载均衡设备会直接将HTTP请求发送到与服务器保持的空闲连接上,避免了新的TCP连接造成的延迟和服务器资源消耗。

在HTTP 1.1中,客户端可以在一个TCP连接中发送多个HTTP请求。该技术称为HTTP 多路复用。它与TCP连接复用最根本的区别在于,TCP连接复用是将多个客户端的HTTP请求复用到一个服务器端TCP连接,而HTTP复用是将一个客户端的多个HTTP请求复用通过一个TCP连接。连接已处理。前者是负载均衡装置独有的功能;而后者是HTTP 1.1协议支持的新特性,目前大多数浏览器都支持。

HTTP缓存

负载均衡器可以存储静态内容并在用户请求时直接响应用户,而无需向后端服务器发出请求。

TCP缓冲

SSL加速

一般情况下,HTTP在网络上以明文形式传输,可能会被非法窃听,尤其是用于认证的密码信息。为了避免此类安全问题,一般采用SSL协议(即:HTTPS)对HTTP协议进行加密,以保证整个传输过程的安全。在SSL通信中,首先使用非对称密钥技术来交换认证信息,并在服务器和浏览器之间交换用于加密数据的会话密钥,然后在通信过程中使用该密钥对信息进行加密和解密。

SSL是一种消耗大量CPU资源的安全技术。目前,大多数负载均衡设备都采用SSL加速芯片(硬件负载均衡器)来处理SSL信息。该方法比传统的基于服务器的SSL加密方法提供了更高的SSL处理性能,从而节省了大量的服务器资源,让服务器能够专注于处理业务请求。此外,集中式SSL处理还可以简化证书的管理,减少日常管理的工作量。

内容过滤

一些负载均衡器可以根据需要修改通过它们的数据。

入侵防御功能

防火墙在保证网络层/传输层安全的基础上,还提供应用层安全。

分类

下面从不同层面来讨论负载均衡的实现:

DNS负载均衡

DNS负责提供域名解析服务。访问站点时,实际上首先需要通过站点域名的DNS服务器获取该域名指向的IP地址。在此过程中,DNS服务器完成域名到IP地址的映射。同样,这个映射也可以是一对多的。在这种情况下,DNS服务器充当负载平衡调度程序,将用户请求分发到多个服务器。使用dig命令查看“baidu”的DNS设置:

集群、分布式、负载均衡的区别

可见百度有3条A记录。

该技术的优点是实现简单、容易实现、成本低、适合大多数TCP/IP应用,并且DNS服务器可以在所有可用的A记录中找到距离用户最近的服务器。但其缺点也非常明显。首先,这个方案并不是真正意义上的负载均衡。 DNS 服务器将HTTP 请求均匀地分发到后台Web 服务器(或基于地理位置),而不管每个Web 服务器的当前负载如何。负载情况;如果后端Web服务器的配置和处理能力不同,最慢的Web服务器将成为系统的瓶颈,处理能力强的服务器无法充分发挥其作用;其次,没有考虑容错性,如果后台某个Web服务器出现故障,DNS服务器仍然会将DNS请求分配给这台出现故障的服务器,导致无法响应客户端。最后一点是致命的。可能会导致相当一部分客户无法享受Web服务,并且由于DNS缓存的原因,后果会持续很长时间(DNS一般刷新周期为24小时左右)。因此,在国外最新的建设中心网站解决方案中,很少采用这种解决方案。

链路层(OSI 第2 层)负载均衡

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

分发数据时,不修改IP地址(因为还看不到IP地址),只修改目标mac地址,并且所有后端服务器虚拟IP配置为与负载均衡器IP地址一致,所以数据包的源地址和目的地没有被修改。地址,用于数据分发的目的。

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

性能很好,但配置复杂,目前应用较多。

传输层(OSI 第4 层)负载均衡

传输层是OSI 第4 层,包括TCP 和UDP。流行的传输层负载均衡器是HAProxy(这也用于应用层负载均衡)和IPVS。

最终的内部服务器选择主要是通过报文中的目的地址和端口,加上负载均衡设备设置的服务器选择方法来确定。

应用层(OSI 第7 层)负载均衡

应用层是OSI第七层。它包括HTTP、HTTPS 和WebSocket。一个非常流行且经过验证的应用层负载均衡器是Nginx [Engine X=Engine X]。

所谓七层负载均衡,也称为“内容交换”,主要是根据数据包中真正有意义的应用层内容,再加上负载均衡设备设定的服务器选择方式,来决定最终的内部服务器选择。注意,此时可以看到具体http请求的完整URL,因此可以实现下图所示的分布:

用户评论

集群、分布式、负载均衡的区别
你身上有刺,别扎我

这篇文章讲得很透彻!以前一直对集群、分布式、负载均衡搞不明白,看完这篇终于豁然开朗了。感觉学到了不少!

    有20位网友表示赞同!

集群、分布式、负载均衡的区别
没过试用期的爱~

我做的是Web开发,对于这些概念倒是比较熟悉了。文章中提到的案例很实用,让我对不同的应用场景有了更清晰的理解。

    有12位网友表示赞同!

集群、分布式、负载均衡的区别
蝶恋花╮

这篇文章还是比较基础的,入门还好,但对于想要深入了解的人来说可能还不太够。希望能有更多进阶内容!

    有19位网友表示赞同!

集群、分布式、负载均衡的区别
墨城烟柳

我感觉这个标题太过于笼统了,感觉像是一个总结性的文章,读完的文章并没有让我觉得更清晰这些概念之间的区别,反而更加模糊。

    有18位网友表示赞同!

集群、分布式、负载均衡的区别
花海

负载均衡其实还是挺重要的,尤其是在高并发的情况下,能够有效提高系统性能,保证用户体验。这篇文章提到的算法也挺详细的!

    有15位网友表示赞同!

集群、分布式、负载均衡的区别
花开丶若相惜

分布式架构确实有很多优势,比如高可用、可扩展性强等等,但同时也会带来一些挑战,例如数据一致性和部署管理更复杂。希望后续的文章能深入探讨这些方面。

    有18位网友表示赞同!

集群、分布式、负载均衡的区别
堕落爱人!

集群在某些场景下还是很有用的,比如需要提高资源利用率或者进行任务分担。不过对于小型应用来说,可能没有太多的必要去考虑集群部署。

    有10位网友表示赞同!

集群、分布式、负载均衡的区别
心脏偷懒

学习集群、分布式和负载均衡真是太重要了,因为这些都是互联网架构的关键技术。希望以后有更多高质量的教程分享!

    有10位网友表示赞同!

集群、分布式、负载均衡的区别
?娘子汉

文章里提到的例子都很不错,让我更容易理解这些概念之间的关系。不过觉得还是缺一些实战经验的分享,比如如何实际应用这些技术?

    有10位网友表示赞同!

集群、分布式、负载均衡的区别
十言i

这篇文章对我来说有点挑战了,毕竟我对计算机基础知识不太熟练。建议可以加入一些概念解释和通俗易懂的描述,让新手也能更轻松地理解。

    有16位网友表示赞同!

集群、分布式、负载均衡的区别
夏日倾情

分布式系统真的很复杂啊!文章虽然讲解到位,但我还是感觉自己对这个概念理解得很模糊。需要多多练习才行!!

    有14位网友表示赞同!

集群、分布式、负载均衡的区别
你很爱吃凉皮

我对负载均衡很感兴趣,特别是轮询和哈希两种算法。希望有更多关于不同负载均衡策略的分析和比较。

    有20位网友表示赞同!

集群、分布式、负载均衡的区别
凉话刺骨

学习编程确实是一段漫长的旅程,还是要一点一点积累知识!这篇文章算是打开了一个新的领域,让我更深入地了解了架构设计的基本概念。

    有16位网友表示赞同!

集群、分布式、负载均衡的区别
情深至命

感觉集群、分布式和负载均衡其实是三个相互补充的概念。理解其中任何一个,都会帮助我们更好地打造健壮可靠的系统。

    有6位网友表示赞同!

集群、分布式、负载均衡的区别
安之若素

学习技术真的要注重实践!看完这篇文章后,我想要自己动手搭建一个简单的集群或者分布式系统来试试看!

    有9位网友表示赞同!

集群、分布式、负载均衡的区别
眼角有泪°

对于一些大型互联网公司来说,集群、分布式和负载均衡都是必不可少的技术手段。这篇文章对这些技术进行了很好的概述,让我更加了解了大公司如何应对高并发访问的挑战。

    有11位网友表示赞同!

原创文章,作者:小su,如若转载,请注明出处:https://www.sudun.com/ask/181127.html

(0)
小su's avatar小su
上一篇 2024年9月22日 下午11:59
下一篇 2024年9月23日 上午12:09

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注