四层和七层负载均衡不同
2019-06-19 本文已影响2人
Miracle001
四层、七层负载均衡的区别
四层: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