理解负载均衡(Load balance)

什么是负载均衡

负载均衡(Load balance),是一种计算机技术,用来在多个计算机(计算机集群)、网络连接、CPU、磁盘驱动器或者其他资源中分配负载,已达到最优化资源使用、最大吞吐率、最小化响应时间、同时避免过载的目的。

#### 实现方法?
为了提高网站的各方面能力,我们一般会组成一个集群对外提供服务。然而我们的网站对外提供的访问路径就一个,比如我的博客:www.kevinfaith.cn,
那么当用户在浏览器上输入我博客的URL时如何将用户的请求分布到集群中的不同机器上呢,这就是负载均衡在做的事情。
负载均衡,意思是将负载(工作任务,访问请求)进行平衡、分摊到多个操作单元(服务器,组件)上进行执行。是解决高性能,单点故障(高可用),扩展性(水平伸缩)的终极解决方案。
#### 负载均衡分类
想要实现负载均衡有很多种方法,深入之前县说一个东西,OSI七层模型。
OSI七层模型,亦称OSI(Open System Interconnection)参考模型,是参考模型是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标准体系。
OSI是一个开放型的通信系统互连参考模型,他说一个定义的非常好的协议规范。
OSI七层,从下到上分别是:

  1. 物理层
  2. 数据链路层
  3. 网络层
  4. 传输层
  5. 会话层
  6. 表示层
  7. 应用层
    负载均衡是要在网络传输中做文章的,所以负载均衡实现在OSI七层模型的不同层次,是可以给负载均衡分类的,常见的实现方式中,主要可以在应用层、传输层、网络层和数据传输层做文章,工作在应用层的负载均衡,我们通常称之为七层负载均衡、工作在传输层的的我们称之为四层负载均衡。越接近物理层性能和速度越快。

二层负载均衡

负载均衡服务器对外依然提供一个VIP(虚拟ip),集群中不同的机器采用相同的ip地址,但是机器的mac地址(物理地址)不一样,当负载均衡服务器收到请求以后,通过改写报文的目标MAC地址的方式将请求转发到目标机器实现负载均衡。

三层负载均衡

和二层负载均衡类似,负载均衡对外依然提供一个VIP(虚拟ip),但是集群中不同的机器采用不同的IP地址,当负载均衡服务器收到请求以后,通过IP讲请求发到不同的真实服务器。

#### 四层负载均衡
四层负载均衡工作在osi的传输层,由于在传输层,只有TCP/UDP协议,这两种协议中除了包含源ip、目标ip以外,还包含源端口号以及目的端口号。四层负载均衡服务器在接受到客户端请求后,已通过修改数据包的地址信息(IP+端口号)讲流量转发到应用服务器,有代表性的负载均衡工具有(LVM、HAProxy、nginx),但是Nginx和HAProxy不完全是四层的,他们是是基于四层和七层技术,但主要是七层。

#### 七层负载均衡
七层负载均衡工作在osi模型的应用层,应用层协议较多,常见的 http、redius、dns等。七层负载就可以给予这些协议来负载,比如同Web服务器的负载均衡,除了根据IP加端口进行负载外,还可以根据七层的URL、浏览器类别、语言来决定是否要进行负载均衡。典型的工具有(HAProxy、nginx,)

文章目录
  1. 1. 什么是负载均衡
  2. 2. 二层负载均衡
  3. 3. 三层负载均衡