- 遇到了负载均衡和高可用选型问题,必要好好理解下lvs,nginx,haproxy和keepalive的区别和联系
- LVS、Nginx、HAProxy 是目前使用最广泛的三种软件负载均衡软件。
- 一般对负载均衡的使用是随着网站规模的提升根据不同的阶段来使用不同的技术。具体的应用需求还得具体分析,如果是中小型的 Web 应用,比如日 PV 小于1000万,用 Nginx 就完全可以了;如果机器不少,可以用 DNS 轮询,LVS 所耗费的机器还是比较多的;大型网站或重要的服务,且服务器比较多时,可以考虑用 LVS。
- 目前比较流行的架构方案
- web前端采用nginx/HAProxy+Keepalived作为负载均衡
- 后端mysql数据库一主多从和读写分离,采用lvs+keepalived的架构
负载均衡器 | osi层 | 应用 | |
LVS | 4 | 一种高级负载平衡解决方案,可用于构建高度可扩展且高度可用的网络服务,例如可扩展的Web,缓存,邮件,ftp,媒体和VoIP服务。 | 不支持正则表达式处理,不能做动静分离;只分发请求,没有流量的产生,对内存和 cpu 资源消耗比较低,工作在传输层,所以它几乎可以对所有应用做负载均衡,包括 http、数据库、在线聊天室等等。 |
nginx | 7 | 处理高并发的 HTTP/https 请求和作为反向代理服务器 | 仅能支持http、https 和 Email 协议 |
HAProxy | 7 | 支持两种代理模式 TCP(四层)和HTTP(七层),也是支持虚拟主机的 | |
keeplive | 服务软件 | 保证集群高可用的一个服务软件,其功能类似于heartbeat,用来防止单点故障。 | 三层、四层、五层工作在TCP/IP协议栈的IP层、TCP层、应用层 |
1. LVS
LVS 是 Linux Virtual Server 的首字母缩写,意为 Linux 虚拟服务器,即把许多台物理 Linux 计算机逻辑上整合成一台超级计算机,对用户来说感觉只有一台计算能力很强的服务器,如图 2 所示。
LVS 就是一个由软件实现的负载均衡器,工作在网络 OSI 的第四层(应用层),是中国人章嵩开发的,代码已经并入了 Linux 内核。利用它,再加上一台廉价的计算机,就能构建一台企业级的负载均衡器。而那些外国大公司的负载均衡器,售价都要十几万元,甚至几十万元,便宜的也要几万元,LVS 出来后,这些产品都不得不降价。
负载均衡器的作用就是把任务分配给最合适的服务器。比如一个大型购物网店,有 100 台同样配置的服务器在运行,如果某一时刻有 10 万用户在线购物,那么通过负载均衡器,每台服务器差不多承担 1000 个在线购物用户。
LVS 的官网网站是 http://www.linuxvirtualserver.org。另外,两个较为流行的第七层负载均衡器是 Nginx 和 HAProxy,针对应用做均衡,所以能适应的负载种类没有 LVS 多。
https://www.cnblogs.com/sky-chen/p/10578022.html
- 网络分层架构