美文网首页
负载均衡

负载均衡

作者: 指尖流年 | 来源:发表于2018-08-29 17:16 被阅读38次

什么是负载均衡?

通俗来讲,负载均衡是将集群中每台机器在运算能力所支持的范围内,尽可能最大限度的提供服务。
举例说明
现在有ABC三台计算机,并且这三台计算机的配置不同(CPU内存)这三台计算机的运算能力分别为:A->10B->8C->5

主机名 运算能力
A 10
B 8
C 5

那么当流量(网络请求)过来了以后,该怎么去支配这三台机器呢?

  • 平均分配
    由于三台机器的计算能力不同,如果对流量进行平均分配,因为主机C的能力最小,但是却做了和主机A、B同等重量的活儿,主机C会不堪重负,轻则出现服务延迟,重则宕机,所以针对上述实例来说,流量平均分配是不可行的。
  • 适量而行、按需分配
    我们已知主机A主机B主机C运算能力,我们可以根据他们各自的运算能力,对其分配流量。
    分配策略如下:
    为每个主机分配一个权重,主机的运算能力越大,权重越大。
主机名 权重 命中概率
A 10 10/(10+8+5)
B 8 8/(10+8+5)
C 5 5/(10+8+5)

如果每个主机的运算能力相同,那就将每个主机的权重设为相同,除此之外,还可以随机挑选一个主机进行分配

负载均衡分类?

负载均衡分为七层负载均衡四层负载均衡七层、四层这两个概念是从计算机网络网络协议中得到的,七层就是应用层,四层就是运输层,运输层的核心协议是TCP、UDP,TCP和UDP的核心就是IP和端口号。

  • 七层负载均衡
    流量的分配策略主要是应用层协议,HTTP请求过来以后,会根据URL进行分配主机。
  • 四层负载均衡
    和七层负载均衡不一样的是,四层负载均衡不依赖HTTP请求的URL,直接由后端为通过分配策略为其分配流量。

用Nginx做负载均衡

Nginx的upstream模块简单使用

  • 权重分配
    如果weight不指定,默认都为1,weight越大,权重越大。
upstream linuxidc{ 
      server 10.0.0.77 weight=5; 
      server 10.0.0.88 weight=10; 
}
  • 根据ip的hash值进行分配
    每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session不能跨服务器的问题。
upstream resinserver{
ip_hash;
server 192.168.1.10:8080;
server 192.168.1.11:8080;
}

相关文章

网友评论

      本文标题:负载均衡

      本文链接:https://www.haomeiwen.com/subject/tsdopftx.html