架构笔记:随便写写,关于常见负载均衡架构对比及演变
@[toc]
关于负载均衡
主流负载均衡的开源方案:Nginx、LVS、HAProxy 目前关于网站架构一般比较合理流行的架构方案: Web前端采用Nginx/HAProxy+ Keepalived作负载均衡器; 后端采用 MySQL数据库一主多从和读写分离,采用LVS+Keepalived的架构。
1、Nginx
应用场景:小规模的web应用网站 - 优点: 工作在七层,可针对http做分流策略。 对网络依赖小 支持几万次的并发 安装配置简单 - 缺点: 只能支持http/https协议 只能通过端口检查后端服务器健康度,不支持url检测
2、LVS
使用Linux内核集群实现一个高性能、高可用的负载均衡服务器 应用场景:应用范围比较广,因为LVS工作在4层,所以它几乎可以对所有应用做负载均衡,包括http、数据库、在线聊天室等等
- 优点: 抗负载能力强、是工作在网络4层之上仅作分发之用,LVS只分发请求,没有流量的产生,负载均衡里性能强 工作稳定,因为其本身抗负载能力很强,自身有完整的双机热备方案,如LVS+Keepalived
- 缺点: 软件本身不支持正则表达式处理,不能做动静分离。网页动静分离只能使用Nginx/HAProxy+Keepalived的优势所在 有Windows服务时,实施较复杂
3、HAProxy
应用场景:大型web应用 - 优点:HAProxy的优点能够补充Nginx的一些缺点,比如支持Session的保持,Cookie的引导;同时支持通过获取指定的url来检测后端服务器的状态。HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。 同时,HAProxy是支持虚拟主机的。
-
总结
像对于大型的,需要进行高并发的网站或者对网络不太严格的时候,可以使用nginx。 而负载均衡架构的选择,也是看公司的架构演变: 阶段:利用Nginx或HAProxy进行单点的负载均衡,这一阶段服务器规模刚脱离开单服务器、单数据库的模式,需要一定的负载均衡,但是仍然规模较小没有专业的维护团队来进行维护,也没有需要进行大规模的网站部署。这样利用Nginx或HAproxy就是选择,此时这些东西上手快, 配置容易,在七层之上利用HTTP协议就可以。这时是选择。
第二阶段:随着网络服务进一步扩大,这时单点的Nginx已经不能满足,这时使用LVS就是首要选择,Nginx此时就作为LVS节点来使用,具体LVS的是选择是根据公司规模和预算来选择。
第三阶段:这时网络服务已经成为主流产品,此时随着公司知名度也进一步扩展,相关人才的能力以及数量也随之提升,这时无论从开发适合自身产品的定制,以及降低成本来讲开源的LVS,已经成为,这时LVS会成为主流。 终形成比较理想的基本架构为: LVS+Keepalived——Nginx/HAProxy—— web server——LVS+keepalived
真的随笔,别太认真
相关文章