关注分享主机优惠活动
国内外VPS云服务器

如何解决高并发?解决方案之一是负载平衡(高并发处理方案)

如何解决高并发?解决方案之一是负载平衡(高并发处理方案)-主机频道

负载均衡到底是什么?

当一台服务器的性能达到极限时,我们可以通过服务器集群来提高网站的整体性能。在这种情况下,在服务器集群中,必须有一个服务器来代替调度程序的角色,用户的所有需求都将由它接收,调度程序将根据每个服务器的负载状态将需求分配给后端服务器。

那么,在这个过程中,调度器如何合理分配任务,以确保所有后端服务器充分反映其性能,从而确保服务器集群的整体性能最佳,这就是负载均衡问题。

以下详细介绍了四种负载平衡方法。

(A)HTTP重定向以完成负载平衡

生产过程说明

当用户向服务器发出请求时,请求前提被集群调度器截获;根据一定的配置策略,调度器选择一台服务器,将所选服务器的IP地址封装在HTTP响应消息头的Location字段中,并将响应消息的状态码设置为302,最后将响应消息返回给浏览器。

当浏览器收到响应消息时,它会解析位置字段并向URL发出请求,然后指定的服务器处理用户的请求,最后将结果返回给用户。

在通过HTTP重定向实现服务器集群负载平衡的过程中,必须有一台服务器是按需调度器。用户必须为一次使用发出两次HTTP请求,一次是向调度服务器发出请求以获取后端服务器的IP,另一次是向后端服务器发出请求以获取处置结果。

调度策略

调度服务器得到用户的需求后,通过调度服务器采用的调度策略来决定选择哪个后端服务器来处理这些需求。

随机配置策略

当调度服务器获得用户的请求时,它可以随机确定要通过哪个后端服务器,然后将服务器的IP封装在HTTP响应消息的位置属性中并返回给浏览器。

轮询策略(RR)

调度服务器必须维护一个值来记录最后配置的后端服务器的IP。这样,当出现新需求时,调度程序将按顺序将需求配置到下一个服务器。

考虑到轮询策略必须让调度程序维护一个值来记录最后配置的服务器IP,因此它必须具有额外的开销;此外,考虑到该值属于互斥资源,当多个需求一起出现时,为了更好地避免线程安全问题,必须锁定互斥资源,从而降低性能。随机配置策略不需要维护额外的值,因此不存在线程安全问题,因此性能高于轮询。

优势和劣势分析

通过HTTP重定向来完成服务器集群的负载均衡非常容易,逻辑也比较简单,但缺点也很明显。

在HTTP重定向方法中,调度服务器仅在客户端首次请求网站时启动。

功能。当调度服务器向浏览器返回响应信息时,客户端的后续采用通过新的URL(即后端服务器)完成,然后浏览器将与调度服务器没有关系,然后会出现以下问题:

考虑到不同用户的访问时间和页面深度不同,每个用户对彼此后端服务器的压力也不同。但是,在调度服务器时,很难知道现阶段用户对服务器的压力可能有多大,因此很难通过这种方式实现真正的负载平衡,它只是将请求数量平均分配到每个服务器上。如果为此用户配置的后端服务器出现故障,并且页面被浏览器缓存,那么当用户再次访问网站时,请求肯定会被发送到故障服务器,从而导致访问失败。

域名系统负载平衡

什么是DNS?

在熟悉DNS负载平衡之前,您必须熟悉DNS域名解析。我们知道,IP地址是为数据包在网络中传播而选择的,它需要方便用户记忆。每个人都使用域名访问网站。在这种情况下,在您通过域名访问网站之前,您必须将域名解析为IP地址,这是由DNS完成的。域名服务器。每个人提交的请求不会被发送到需要随时访问的网站,而是发送到域名服务器,该服务器将帮助您将域名解析为IP地址并返回给我们。在收到请求之前,每个人都不会向IP发出请求。那样的话,DNS服务器就有了天然的优势。如果一个域名指向多个IP地址,DNS每次完成域名解析只需选择一个IP返回给用户,即可完成服务器集群的负载均衡。

具体措施

前提是将每个人的域名指向多个后端服务器(将一个域名解析为多个IP),然后设置调度策略,这样每个人的准备工作都完成了,接下来的负载均衡完全由DNS服务器完成。当用户向每个人的域名发出请求时,DNS服务器会通过每个人事先制定的调度策略自动选择一个合适的IP返回给用户,然后用户再向该IP发出请求。

调度策略

通常,DNS提供商将提供几种调度策略供每个人选择,例如随机配置、轮询和配置通过请求者领地的最近服务器。

优势和劣势分析

DNS负载平衡的更大优势是其简单的配置。服务器集群的调度完全由DNS服务器承担,因此每个人都可以专注于后端服务器以确保其稳定性和吞吐量。而且完全不需要担心DNS服务器的性能,即使采用轮询策略,其吞吐率仍然非常出色。此外,DNS负载均衡具有很强的可扩展性,您可以完全为一个域名解析更多IP,而无需担心性能问题。

但考虑到集群调度权交给了DNS服务器,每个人都无法随意控制调度器,无法自定义调度策略。

DNS服务器无法知道每台服务器的负载情况,因此无法完成真正的负载均衡。这与HTTP重定向相同,您会发现任何请求都被平均分配到后端服务器。

此外,当您注意到后端服务器出现故障时,尽管您立即将该服务器从域名解析中删除,但考虑到DNS服务器会有缓存,IP仍会在DNS中保留一段时间,这将导致一些用户无法正常访问网站。这是一个致命的问题!幸运的是,这个问题可以通过动态DNS解决。

动态DNS

动态DNS允许我们通过程序动态修改DNS服务器中的域名解析。因此,当每个人的监控程序检测到某个服务器已挂断时,它可以立即通知DNS将其删除。

通常

DNS负载均衡是一种粗略的负载均衡方法,这里只做详细介绍,不做推荐。

反向代理负载平衡

如何理解反向代理负载均衡?

反向代理服务器是位于特定服务器前面的服务器。任何发送到每个人网站的请求都必须通过反向代理服务器。服务器要么根据用户的请求直接将结果返回给用户,要么将请求移交给后端服务器然后返回给用户。

在过去,我们详细介绍了如何使用反向代理服务器缓存静态页面和常用的动态页面。接下来,我们将详细介绍反向代理服务器的更常用功能-负载均衡。

我们知道任何发送到每个人网站的请求都必须通过反向代理服务器。这样,反向代理服务器就可以充当服务器集群的调度器,它可以根据当前后端服务器的负载将请求发送到合适的服务器,并将处理结果返回给用户。

优势

隐藏后端服务器。

与HTTP重定向相比,反向代理可以隐藏后端服务器,任何浏览器都不会直接与后端服务器进行交互,从而保证了调度器的控制,增强了集群的整体性能。

故障切换

与DNS负载均衡相比,反向代理可以更快地删除失败的节点。当监视器检测到后端服务器出现故障时,它可以尽早通知反向代理服务器并立即将其删除。

合理分配任务

无论是HTTP重定向还是DNS负载均衡都无法实现真正的负载均衡,即调度服务器无法根据后端服务器的具体负载来分配任务。但是,反向代理服务器支持手动设置每个后端服务器的权重。我们可以根据服务器的配置设置不同的权重,不同的权重会导致被调度器选中的概率不同。

劣势

调度员压力太大了。

考虑到所有请求首先由反向代理服务器处理,当请求数量超过调度服务器的最大负载时,调度服务器吞吐量的下降将直接降低集群的整体性能。

限制扩张

当后端服务器无法满足巨大的吞吐量时,需要增加后端服务器的数量,但不能无限增加,因为它会受到调度服务器最大吞吐量的限制。

未经允许不得转载:主机频道 » 如何解决高并发?解决方案之一是负载平衡(高并发处理方案)

评论 抢沙发

评论前必须登录!