负载均衡的三种方式及其算法(负载均衡应该怎么做)

负载均衡的三种方式及其算法(负载均衡应该怎么做)

扫码添加渲大师小管家,免费领取渲染插件、素材、模型、教程合集大礼包!

大家好,今天来介绍负载均衡的三种方式及其算法(nginx负载均衡的三种方式)的问题,以下是渲大师小编对此问题的归纳和整理,感兴趣的来一起看看吧!

负载均衡是怎么做的~

1、服务直接返回:这种安装方式负载均衡的LAN口不使用,WAN口与服务器在同一顷迅晌个网络中,互联网的客户端访问负载均衡的虚IP(VIP),虚IP对应负载均衡机雀锋的WAN口,负载均衡根据策略将流量分发到服务器上,服务器直接响应客户端的请求。

2、桥接模式:桥接模式配置简单,不改变现有网络。负载均衡的WAN口和LAN口分别连接上行设备和下行服务器。LAN口不需要配置IP(WAN口与LAN口是桥连接),所有的服务器与负载均衡均在同一逻辑网络中。

3、路由模式:路由模式的部署方式,服务器的网关必须设置成负载均衡机的LAN口地址,且与WAN口分署不同的逻辑网络。因此所有返回的流昌兆量也都经过负载均衡。这种方式对网络的改动小,能均衡任何下行流量。

扩展资料

负载均衡的算法:

1、随机算法:Random随机,按权重设置随机概率。在一个截面上碰撞的概率高,但调用量越大分布越均匀,而且按概率使用权重后也比较均匀,有利于动态调整提供者权重。

2、哈希算法:一致性哈希一致性Hash,相同参数的请求总是发到同一提供者。当某一台提供者挂时,原本发往该提供者的请求,基于虚拟节点,平摊到其它提供者,不会引起剧烈变动。

3、URL散列:通过管理客户端请求URL信息的散列,将发送至相同URL的请求转发至同一服务器的算法。

-负载均衡

负载均衡的三种方式

负载均衡弊启有三种部署方式:路由模式、桥接模式、服务直接返回模式。

1、路由模式(推荐)

路由模式的部署方式,服务器的网关必须设置成负载均衡机的LAN口地址,所有返回的流量也都经过负载均衡。这种方式对网络的改动小,能均衡任何下行流量。

2、桥接模式

桥接模式配置简单,不改变滑态现有网络。负载均衡的WAN口和LAN口分别连接上行设备和下行服务器。所有的服务器与负载均衡均在同一逻辑网络中。

3、服务直接返回模式

对于客户端而言,响应他的IP不是负载均衡租让如机的虚IP(VIP),而是服务器自身的IP地址。也就是说返回的流量是不经过负载均衡的。因此这种方式适用大流量高带宽要求的服务。

计算机的负载均衡算法

计算机的负载均衡算法主要有以下几种:

1、静态负载均衡算法包括:轮询,比率,优先权。

2、动态负载均衡算法包括:最少连接数,最快响应速郑模轮度,喊信观察方法,预测法,动态性能分配,动态服务器补充,服务质量,服务类型,规则模式。

负载均衡算法的种类有很多种,常见的负载均衡算法包括轮询法、随机法、源地址哈希法、加权轮询法、加权随机法、最小连接法等,应根据具体的使用场景选取对应的算法。

在计算机的世界,这就是大家耳熟能详的负载均衡(load balancing),所谓负载均衡,就是说如果一组计算机节点(或者一组进程)提供相同的(同质的)服务,那么对服务的请求就应该均匀的分摊到这些节点上。

负载均衡的意义在于,让所有节点以最小的代价、最好的状态对外提供服务,这样系统吞吐量最大,性能更高,对于用户而言请求的时间也更小。而且,负载均衡增强了系统的可靠性,最大化降低了单个节点过载、甚至crash的概率。不难想象,如果一个系统绝大部分请求都落在同一个节点上,那么这些请求响应时间都很慢,而且万一节码没点降级或者崩溃,那么所有请求又会转移到下一个节点,造成雪崩。

如何实现负载均衡哪些算法可以实现

1、轮询调度

  轮询调度算法就是以轮询的方式依次将请求调度到不同的服务器,即每次调度执行i = (i + 1) mod n,并选出第i台服务器。算法的优点是其简洁性,它无需记录当前所有连接的状态,所以它是一种无状态调度。

  2、最小连接调度

  最小连接调度算法是把新的连接请求分配到当前连接数最小的服务器。最小连接调度是一种动态调度算法,它通过服务器当前所活跃的连接数来估计服务器的负载情况。

  在实际实现过程中,一般会为每台服务器设定一个权重值,这就是前孙加权最小连接

  3、 基于局部性的最少链接(LBLC)

  基于局部性的最少链接调度(以下简称为LBLC)算法是针对请求报文的目标IP地址的负载均衡调度,目前主要用于Cache集群系统,因为在Cache集群中客户请求报文的目标IP地址是变化的。

  LBLC调度算法先根据请求的目标IP地址找出该目标IP地址最近使用的服务器,若该服务器是可用的且没有超载,将请求发送到该服务器; 若服务器不存在,或服务器超载或有服务器处于其一半的工作负载,则用“最少链接”的原则选出一个可用的服务器,将请求发送到该服务器。

   4、带复制的基于局部性最少链接(LBLCR)

  带复制的基于局部性最少链接调度以下简称为LBLCR)算法也是针对目标IP地址的负载均衡,目前主要用于Cache集群系统。它与LBLC算法的不同之处是它要维护从一个目标IP地址到一组服务器的映射,而LBLC算法维护从一个目标IP地址到一台服务器的映射。

  LBLCR调慧槐链度算法将“热门”站点映射到一组Cache服务器(服务器集合),当该“热门”站点的请求负载增加时,会增加集合里的Cache服务器,来处理不明烂断增长的负载; 当该“热门”站点的请求负载降低时,会减少集合里的Cache服务器数目。

  5、目标地址散列调度

  目标地址散列调度算法是针对目标IP地址的负载均衡,但它是一种静态映射算法,通过一个散列(Hash)函数将一个目标IP地址映射到一台服务器。

  目标地址散列调度算法先根据请求的目标IP地址,作为散列从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空。

  6、 源地址散列调度

  和目标地址散列调度类似,唯一的区别是按照源地址为散列函数的散列键。

负载均衡的几种常用方式

理解负载均衡,必须先搞清楚正向代理和反向代理。

注:

正向代理,代理的是用户。

反向代理,代理的是服务器

什么是负载均衡

当一台服务器的单位时间内谨陪毕的访问量越大时,服务器压力就越大,大到超过自身承受能力时,服务器就会崩溃。为了避免服务器崩溃,让用户有更好的体验,我们通过负载均衡的方式来分担服务器压力。

我们可以建立很多很多服务器,组成一个服务器集群,当用户访问网站时,先访问一个中间服务器,在让这个中间服务器在服务器集群中选择一个压力较小的服务器,然后将该访问请求引入该服务器。如此以来,用户的每次访问,都会保证服务器集群中的每个服务器压力趋于平衡,分担了服务器压力,避免了服务器崩溃的情况。

负载均衡是用反向代理的原理实现的。

1、轮询(默认)

每个请求 按时间顺序逐一分配 到不同的后端服务器,如果后端服务器down掉,能自动剔除。

upstreambackserver {server192.168.0.14;server192.168.0.15;}

2、weight

指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均乱隐的

情况。

upstreambackserver {server192.168.0.14weight=3;server192.168.0.15weight=7;}

权重越高,在被访问的概率越大,如上例,分别是30%,70%。

3、上述方式存在一个问题就是说,在负载均衡系统中,假如用户在某台服务器上登录了,那么该用户第二次请求的时候,因为我们是负载均衡系统,每次请求都会重新定位到服务器集群中的某一个,那么已经登录某一个服务器的用户再重新定位到另一个服务器,其登录信息将会丢失,这样显然是不妥的。

我们可以采用ip_hash指令解决这个问题,如果客户已经访问了某个服务器,当用户再次访问时,会将该请求通过哈希算法,自动定位到该服务器。

每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。

upstreambackserver{ip_hash;server192.168.0.14:88;server192.168.0.15:80;}

4、fair(第三方)

按后端服务器的响应时间来分配请求,响应时间短的优先分配。

upstreambackserver {serverserver1;serverserver2;fair;}

5、url_hash(第三方)

按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。

upstream backserver {    server squid1:3128;    server squid2:3128;    hash$request_uri;    hash_method crc32;}123456

每个设备的状态设置为:

down 表示单前的server暂时不参与负载

weight 默认为1.weight越大,负载的权重就祥芹越大。

max_fails:允许请求失败的次数默认为1.当超过最大次数时,返回 proxy_next_upstream模块定义的错误

fail_timeout:max_fails次失败后,暂停的时间。

backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。

配置实例:

#user  nobody;worker_processes4;events {# 最大并发数worker_connections1024;}http{# 待选服务器列表upstream myproject{# ip_hash指令,将同一用户引入同一服务器。ip_hash;        server125.219.42.4fail_timeout=60s;        server172.31.2.183;        }    server{# 监听端口listen80;# 根目录下location / {# 选择哪个服务器列表proxy_pass http://myproject;                }            }

摘自https://www.cnblogs.com/lcword/p/12513155.html

分享到 :
相关推荐

国内主机和香港主机有哪些不同(国内主机和香港主机有哪些不同之处)

国内主机和香港主机的不同点有:1。国内主机需要备案。香港主机不需要备案。能实现快速使...

phpproxy建立代理服务器(php搭建代理服务器)

反向代理应该是Nginx做的最多的一件事了。什么是反向代理呢。以下是百度百科的说法:...

北京服务器托管价格一年多少钱(北京服务器托管价格一年多少钱啊)

北京服务器托管价格由机位。带宽。线路。ip。电费组成。由于五个因素的不确定性。&ld...

传奇私服服务器多少钱(一个传奇服务器多少钱)

传奇游戏对服务器有特性的需求。比如大部分做游戏的都是私服。没有经过工商备案。那么租用...

发表评论

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