四层和七层负载均衡不同

四层、七层负载均衡的区别
四层:LVS F5
第三层的ip(VIP)+ 第四层的端口(tcp层)  通过nat 转发到后台服务器  后续这个连接的所有流量都转发到该服务器上
不理解应用层协议
客户端 --> 四层负载均衡器(路由)--> 后台服务器
    类似路由器的转发动作  
    转发报文的同时可能还会对报文原来的源地址进行修改


七层:nginx、haproxy、MySQL Proxy
四层的基础上  分析应用层的信息  url、浏览器类别、语言、cookie
客户端 --> 七层负载均衡器(代理)--> 后台服务器  先建立一个连接(3次握手)
    接收到客户端发送的真正应用层内容的报文,然后再根据  该报文中的特定字段  和  负载均衡设备设置的服务器选择方式
    决定选择哪个后台服务器
好处:
    避免 SYN Flood 攻击  耗尽服务器资源
    七层层面设定多种策略,过滤特定报文  提高系统整体安全


7层负载均衡  着重于应用HTTP协议  应用范围  众多的网站或者内部信息平台等基于B/S开发的系统。
    B/S结构:Browser/Server(浏览器/服务器)结构
        浏览器端展现相关工作  html,css,js,ps,ai等等
        “后端”主要工作程序开发、数据处理   php,asp,mysql,mssql

4层负载均衡  对应其他TCP应用  例如基于C/S开发的ERP等系统
    C/S结构:Client/Server(客户机/服务器)
    开发C/S架构可以采用多种语言  Java,C++,C#,Dephi等



中小型的Web应用,比如日PV小于1000万,用Nginx就完全可以了;
如果机器不少,可以用DNS轮询,LVS所耗费的机器还是比较多的;
大型网站或重要的服务,且服务器比较多时,可以考虑用LVS


通过硬件来进行,常见的硬件有比较昂贵的F5和Array等商用的负载均衡器,
它的优点就是有专业的维护团队来对这些服务进行维护;
缺点就是花销太大,对于规模较小的网络服务来说暂时还没有需要使用



网站架构一般比较合理流行的架构方案:
Web前端采用  Nginx/HAProxy + Keepalived作负载均衡器;
后端采用 MySQL数据库一主多从和读写分离,采用LVS+Keepalived的架构。
当然要根据项目具体需求制定方案


nginx好处:

    在网络的7层之上      针对http应用做一些分流的策略   比如针对域名、目录结构,它的正则规则比HAProxy更为强大和灵活
    
    对网络稳定性的依赖非常小,理论上能ping通就就能进行负载功能;相反LVS对网络稳定性依赖比较大。

    承担高负载压力且稳定,在硬件不差的情况下一般能支撑几万次的并发量,负载度比LVS相对小些

    安装和配置比较简单,测试起来比较方便,基本能把错误用日志打印出来。  LVS的配置、测试就要花比较长的时间了,LVS对网络依赖比较大。

nignx缺点:

    仅能支持http、https和Email协议

    后端服务器的健康检查,只支持通过端口来检测,不支持通过url来检测。不支持Session的直接保持,但能通过ip_hash来解决


参考文章:https://www.jianshu.com/p/fa937b8e6712

你可能感兴趣的:(四层和七层负载均衡不同)