解决高并发问题
DNS负载均衡
原理:DNS服务器将一个域名解析成多个IP,实现负载均衡
优点:简单
缺点:DNS更新慢,如果某个IP下线,会降低服务稳定性;而且DNS有缓存机制(cdn),会使负载均衡能力不明显;请求无法均匀分配给服务器
七层负载均衡
原理:在RS前配置一个DS,如haproxy、nginx。利用nginx的rewrite模块实现请求转发,属于应用层
优点:可以对RS进行隐藏,扩展性强
缺点:DS可能成为服务性能瓶颈,DS的TCP请求(句柄)负载翻倍,因为DS要同时和RS和客户端通信
Nginx负载的优点是:
工作在网络七层,可以对http应用做分流策略。比如针对域名、目录结构等
Nginx对网络稳定性的依赖非常小,理论上能ping通就就能进行负载功能
Nginx安装和配置比较简单,测试起来比较方便,它基本能把错误用日志打印出来
Nginx可以通过端口检测到服务器内部的故障,比如根据服务器处理网页返回的状态码、超时等
Nginx的缺点:
只支持通过端口来检测,不支持通过url来检测
Nginx仅能支持http、https和Email协议,只能对http和email服务进行负载均衡,在适用范围上面小
四层负载均衡
原理:在RS前配置一个DS,如LVS。利用内核的TCP/IP协议栈进行转发(postrouting链),不经过用户层面,属于传输层
优点:相对七层负载,并发更高,适用于电商
动态分配接入点
原理:服务端提供一个"ticket服务器",存放所有RS地址信息,根据一定算法,返回给客户端一个RS的IP地址,让其自己去访问 优点:缓解DS的负载瓶颈s