负载均衡的几种实现方式

(1)HTTP重定向负载均衡

         这种负载均衡方案的优点是比较简单;

         缺点是浏览器需要每次请求两次服务器才能拿完成一次访问,性能较差。
(2)DNS域名解析负载均衡

         优点是将负载均衡工作交给DNS,省略掉了网络管理的麻烦;

         缺点就是DNS可能缓存A记录,不受网站控制。
(3)反向代理负载均衡

       优点是部署简单;

       缺点是反向代理服务器是所有请求和响应的中转站,其性能可能会成为瓶颈。
(4)IP负载均衡

      优点:IP负载均衡在内核进程完成数据分发,较反向代理均衡有更好的处理性能。

      缺点:负载均衡的网卡带宽成为系统的瓶颈。

(5)数据链路层负载均衡

       避免负载均衡服务器网卡带宽成为瓶颈,是目前大型网站所使用的最广的一种负载均衡手段。


附录:

数据链路层的负载均衡
   Linux服务器实施双网卡绑定(Bonding),可增加吞吐量,实现负载均衡,同时实现高可用。(均衡冗余)(数据链路层唯一负载均衡)
   Linux双网卡绑定使两块网卡虚拟成一块网卡,该网卡的驱动是bonding。(在/boot/config*可查看内核是否支持BONDING模块)。

配置方法:
   (环境:VMware CentOS7.2 双网卡)
   (下面配置,使用nmcli网络管理工具)
   1.查看网卡名称及状态
   
   
  1. [root@localhost 桌面]# nmcli device status
  2. 设备 类型 状态 CONNECTION
  3. virbr0 bridge 连接的 virbr0
  4. eno16777736 ethernet 连接的 eno16777736
  5. eno33554984 ethernet 连接的 有线连接 1
  6. virbr0-nic tap 连接的 virbr0-nic
  7. lo loopback 未管理 --
   2.配置网卡虚拟bond0及配置模式(配置为负载均衡轮循模式)
   
   
  1. [root@localhost 桌面]# nmcli connection add type bond con-name bond0 ifname bond0 mode balance-rr
  2. 成功添加的连接 'bond0'8654ebdb-99ac-4abb-9862-c16cd63a033f)。
   3.将物理网卡绑定到bond0  
      
      
  1. [root@localhost 桌面]# nmcli connection add type bond-slave ifname eno16777736 master bond0
  2. 成功添加的连接 'bond-slave-eno16777736'7d5cd0c8-703b-4fd3-8f86-e909700cc3a1)。
  3. [root@localhost 桌面]# nmcli connection add type bond-slave ifname eno33554984 master bond0
  4. 成功添加的连接 'bond-slave-eno33554984'2c79b9c4-8a3e-4f27-9cd0-33cc30a51d3c)。
   4.启动绑定的物理网卡
      
      
  1. [root@localhost 桌面]# nmcli connection up bond-slave-eno16777736
  2. 成功激活的连接(D-Bus 激活路径:/org/freedesktop/NetworkManager/ActiveConnection/5
  3. [root@localhost 桌面]# nmcli connection up bond-slave-eno33554984
  4. 成功激活的连接(D-Bus 激活路径:/org/freedesktop/NetworkManager/ActiveConnection/6
   5.启动虚拟bond0网卡
      
      
  1. [root@localhost 桌面]# nmcli connection up bond0
  2. Connection successfully activated (master waiting for slaves) (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/7)
   6.设置静态IP,取消DHCP,设置手动模式
      
      
  1. [root@localhost 桌面]# nmcli connection modify bond0 ipv4.addresses 192.168.1.166/24 ipv4.gateway 192.168.1.1 ipv4.dns 192.168.1.1
  2. [root@localhost 桌面]# nmcli con modify team0 ipv4.method manual
  3. [root@localhost 桌面]# service network restart

bond七种模式:
   Mode=0(blance-rr):表示负载分担round-robin,和交换机的聚合强制不协商方式配合。
   Mode=1(active-backup):表示主备模式,一块active,一块standby.
   Mode=2(balance-xor):表示XOR Hash负载分担,和交换机的聚合强制不协商方式配合。(需要xmit_hash_policy)   
   Mode=3(broadcast):表示所有包从所有interface发出,这个不均衡,只有冗余机制和交换机的聚合强制不协商方式配合。 
   Mode=4(802.3ad):表示支持802.3ad协议,和交换机的聚合LACP方式配合(需要xmit_hash_policy)
   Mode=5(balance-tlb):是根据每个slave的负载情况选择slave进行发送,接收时使用当前轮到的slave
   Mode=6(balance-alb):在5的tlb基础上增加了rlb。

      0,2和3理论上需要静态聚合方式。(0可以通过mac地址欺骗的方式在交换机不设置的情况下不太均衡地进行接收)
    4需要支持802.3ad
   5和6不需要交换机端的设置,网卡能自动聚合。

    mode0下bond所绑定的网卡的IP都被修改成相同的mac地址,如果这些网卡都被接在同一个交换机,那么交换机的arp表里这个mac地址对应的端口就有多个,那么交换机接受到发往这个mac地址的包应该往哪个端口转发呢?正常情况下mac地址是全球唯一的,一个mac地址对应多个端口肯定使交换机迷惑了。所以mode0下的bond如果连接到交换机,交换机这几个端口应该采取聚合方式(cisco称为ethernetchannel,foundry称为portgroup),因为交换机做了聚合后,聚合下的几个端口也被捆绑成一个mac地址.解决办法是,两个网卡接入不同的交换机即可。
    
参考博客:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值