首页 > 编程知识 正文

nginx负载均衡四种策略(萤火虫算法与负载均衡)

时间:2023-05-04 00:24:23 阅读:88520 作者:3665

内容导读

的实际效果接近于为后端上的每个服务均匀分配调用量,即轮询的结果。 源地址kndhb的思想是获取客户端的IP地址,利用kndhb函数计算出的值,使用该值对服务器列表的大小进行模数运算,从而是客户端想要访问服务器的编号。 在使用源地址kndhb法进行负载均衡时,同一IP地址的客户端在后端服务器的列表没有变化的情况下,每次都映射到同一后端服务器进行访问。 由于后端服务器的计算机配置和当前系统负载不同,耐压也可能不同。 指定轮询的概率。 weight与访问率成正比,用于后端服务器性能不均匀的情况。 3.max_fails :缺省情况下,允许请求失败的次数超过1 .最大次数时,proxy_next_upstream模块中定义的错误4.fail_timeout:max_fails为

常见的几种负载均衡算法

1、轮询法

请求将按顺序分配给后端服务器,并平均地处理给后端的每台服务器。 与服务器的实际连接数和当前系统负载无关。

2、随机法

系统的随机算法根据后端服务器列表大小的值随机选择要访问的服务器之一。 根据概率统计理论,随着客户端呼叫服务端的次数增加,

实际效果接近于后端的各项服务,即轮询的结果。

3、发送源地址kndhb法

源地址kndhb的思想是获取客户端的IP地址,利用kndhb函数计算出的值,使用该值对服务器列表的大小进行模数运算,从而是客户端想要访问服务器的编号。 使用源地址kndhb法进行负载均衡时,同一IP地址的客户端在后端服务器的列表没有变化的情况下,每次都映射到同一后端服务器进行访问。

4、加权轮询法

由于后端服务器的计算机配置和当前系统负载不同,耐压也可能不同。 请对配置高、负荷低的机器分配更高的权重,进行更多的处理; 另一方面,如果配置低负载、高负载的机器,分配低权重,降低系统负载,则权重轮询可以很好地解决这个问题,并为后端分配每个权重的请求顺序。

5、加权随机法

和加权轮询法一样,加权随机法也通过后端机的配置,给系统的负载分配不同的权重。 区别是根据权重而不是顺序向后端服务器随机请求。

6、最小连接数法

最小连接数算法相对灵活、智能,后端服务器的配置不同,因此请求的速度是快还是慢是根据后端服务器当前的连接情况动态选择的

负责用积压连接数最少的一台服务器处理当前的请求,尽可能提高后端服务的利用率,合理卸载到每台服务器上。

Nginx的5种负载均衡算法

1,轮询(默认)

每个请求都按时间顺序分配给不同的后端服务器,如果后端服务器出现故障,将自动删除。

2、重量

指定轮询的概率。 weight与访问率成正比,用于后端服务器性能不均匀的情况。

例如:

上游后端{2}

服务器192.168.0.14权重=10;

服务器192.168.0.15权重=10;

3、IP _混列

每个请求都分配给访问ip的每个散列结果。 这样,每个访问者可以固定访问一个后端服务器,从而解决会话问题。

例如:

上游后端{2}

IP混列;

服务器192.168.0.14:88;

服务器192.168.0.15:80;

4、fair (第三者) () ) ) ) ) ) ) )。

为后端服务器的每个响应时间分配请求,并进行响应时间短的优先分配。

上游后端{2}

服务器服务器1;

服务器服务器2;

航空公司;

(5、url_hash (第三方) () ) () ) () ) ) ) ) ) ) )

根据访问url的散列结果分配请求,以确保每个url都发送到同一后端服务器。 后端服务器为缓存时有效。

示例:不能在upstream中包含hash语句,也不能将weight等其他参数写入server语句。 hash_method是要使用的散列算法。

上游后端{2}

服务器squid 1:3128;

服务器squid 2:3128;

散列请求URI;

hash_method crc32;

}tips:

定义upstream bakend{#负载平衡设备的Ip和设备状态

IP混列;

服务器127.0.0.1:9090下降;

服务器127.0.0.1:8080权重=2;

服务器127.0.0.1:6060;

服务器127.0.0.1:7070备份;

}添加到需要负载平衡的服务器

proxy_pass http://bakend/各设备的状态设定如下。

1.down表示单个前服务器暂时不参与负载2.weight默认为1.weight越大,负载的权重越大。 3.max_fails :缺省情况下,允许请求失败的次数超过1 .最大次数时,proxy_next_upstream模块中定义的错误4.fail_timeout:max_fails为5.backup :所有其他非backup机器都处于down或忙状态时,请求backup机器。 所以这台机器的压力会最轻。

nginx支持同时设置多个组的负载均衡,以便在未使用的服务器上使用。

如果设置为client_body_in_file_only:on,则可以说来自client post的数据将被记录在文件中,用于调试。

客户端_主体_时间路径:设置日志文件的目录。 最多可设定3层目录。

location :可以匹配URL,通过重定向或创建新代理来进行负载平衡。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。