各种类型的负载均衡,四层,七层,基于302,基于DNS转发

一、数据链路层负载均衡
1、双网卡绑定交换机配置
实现方式:双网卡绑定,在思科交换机上称呼为EtherChannel
Switch(config)#interface range fstaEthernet 0/23-34
Switch(config-if-range)#switchport mode access
Switch(config-if-range)#channel-group 3 mode active
Switch(config-if-range)#switchport access vlan 9
Switch(config-if-range)#no shut
Switch(config)#show etherchannel summary   #如果显示是SU状态正常,如果是D,协商失败。


说明:
Switch(config-if-range)#channel-group 1 mode ?                   #通过此命令在交换机查看端口聚合可以使用的协议
  active   Enable LACP unconditionally                           #主动发送LACP报文
  auto    Enable PAgP only if a PAgP device is detected          #被动发送PAgP报文
  desirable  Enable PAgP unconditionally                         #主动发送PAgP报文
  on       Enable Etherchannel only                              #手动设置,需要两边都设置成on
  passive  Enable LACP only if a LACP device is detected         #被动接收LACP报文


2、服务器配置
vi /etc/sysconfig/network-scripts/ifcfg-bond0 
DEVICE=bond0
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.1.157
NETMASK=255.255.255.0

vi /etc/sysconfig/network
GATEWAY=192.168.1.1

vi /etc/sysconfig/network-scripts/ifcfg-enp132s0f0   
BOOTPROTO=none
TYPE=Ethernet
DEVICE=enp132s0f0
ONBOOT=yes
MASTER=bond0
SLAVE=yes

vi /etc/sysconfig/network-scripts/ifcfg-enp132s0f1
BOOTPROTO=none
TYPE=Ethernet
DEVICE=enp132s0f1
ONBOOT=yes
MASTER=bond0
SLAVE=yes


vi /etc/modprobe.conf
alias bond0 bonding
options bond0 miimon=100 mode=0

vi /etc/rc.d/rc.local
ifenslave bond0 enp132s0f0 enp132s0f1

modprobe  bonding;lsmod |grep bonding;service network restart

注: 
1、miimon 单位:毫秒,miimon=100的意思就是,每100毫秒检测网卡和交换机之间是否连通,如不通则使用另外的链路。 
2、mode=0 表示负载均衡方式:第1个包走eth0,下一个包就走eth1....一直循环下去,直到最后一个传输完毕 
3、mode=1 表示主备关系,只有一个设备处于活动状态,当 一个宕掉另一个马上由备份转换为主设备 
6、mod=6与mod=0的区别:mod=6,先把eth0流量占满,再占eth1,....ethX;而mod=0的话,会发现2个口的流量都很稳定,基本一样的带宽。而mod=6,会发现第一个口流量很高,第2个口只占了小部分流量 
7.mode=4 是两块网卡同时跑流量,交换机支持802.3AD功能,即LACP协议,必须开启该模式。 

vi /etc/rc.d/rc.local
ifenslave bond0 eth0 eth1 …… eht* 

#检查状态 
cat /proc/net/bonding/bond0 

#检查流量信息
#ifstat -b

二、四层负载均衡
原理:是由负载均衡设备或者软件 ,通过TCP或者UDP的Header信息进行直接判断由哪个实际的后端服务器来处理该链接,从而实现转发。
简要说明:
1)负载均衡接受来自客户端的TCP SYN包后,通过调度到后端服务器。
2)后端服务收到SYN以后,回复SYN+ACK包到负载均衡。
3)负载均衡回复SYN+ACK至客户端。
4)客户端收到SYN+ACK包以后,客户端回复一个ACK包
5)至此会话建立。


四层负载均衡的特点:
1)模型简单,不关心业务逻辑,只负载调度,网络转发,和对后端的服务器监控检查。
2)吞吐量大的业务。
3)应用范围广,工作在4层,可以对所有的应用做负载均衡,包括HTTP,和数据库,和在线聊天等。

三、七层负载均衡
与4层最大的区别:7层是在后端服务器接收到TCP数据以后,才开始才开始建立连接。而4层是在一开始就建立连接。
七层负载均衡的特点:
1)模型复杂度高,需要解开请求里面的HTTP主机头信息,作为调度的依据。
2)吞吐量小,CPU处理负载,相对于4层,提供的吞吐量较小。
3)对后端选择的精细化控制,可以根据客户的请求,更加合理的选择,提高后端的执行效率。


四、基于DNS的负载均衡
原理:在DNS上多配置几条A记录
特点:
1)配置简单,不需要额外的投入
2)DNS的缓存问题,会导致被访问的服务器故障时,切换时间变长。
3)一般需要配合其他负载均衡方案和监控。

五、基于重定向的负载均衡
1)基于HTTP 302重定向下载系统,302重定向上传系统
通过302方法,不同用户访问该链接时,按照预先配置的比率,概率的引导客户端去不同的节点去下载资源,从而达到分流目的。


六、基于客户端的负载均衡
1)基于哈希算法
在程序中,通常使用哈希算法来计算节点。例如有3台功能相同的服务器A,B,C,有一个数据M需要存储在其中一个节点上,最简单的方法是通过CRC32,然后取模,计算出存储节点。
2)数据库读写分离
在基于数据库的应用中,应用程序使用数据库分离方法,将对数据库的读写压力进行均衡,在mysql集群中,可以配置一台或者多台Slave,来分担数据读取压力。
应用程序判断SQL的类型,是SELECT就发送给slave节点,如果是INSERT,或UPDATE就发给master节点。

基于客户端的负载均衡的特点:
1)由客户端的程序内部实现,不需要额外的负载均衡。
2)程序内部需要解决业务服务不可用问题,服务器端故障对应用程序的透明度较小。
3)程序内部需要解决业务服务器过载的问题。
 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值