LVS 特点:
1. 抗负载能力强, 使用 IP 负载均衡技术, 只做分发, 所以 LVS 本身并没有多少流量产生;
2. 稳定性, 可靠性好, 自身有完美的热备方案;(如: LVS+Keepalived)
3. 应用范围比较广, 可以对所有应用做负载均衡;
4. 不支持正则处理, 不能做动静分离.
常用四种算法:
1.rr: 轮叫, 轮流分配到后端服务器;
2.wrr: 权重轮叫, 根据后端服务器负载情况来分配;
3.lc: 最小连接, 分配已建立连接最少的服务器上;
4.wlc: 权重最小连接, 根据后端服务器处理能力来分配.
可以采用 ipvsadm -p(persistence)来保持 session, 默认是 300/s
Nginx 特点:
1. 可工作在七层或四层, 可以对做正则规则处理;(如: 针对域名, 目录进行分流)
2. 配置简单, 能 ping 通就能进行负载功能, 可以通过端口检测后端服务器状态, 不支持 url 检测;
3. 抗高并发, 采用 epoll 网络模型处理客户请求;
4. 只支持 HTTP 和 EMail, 应用范围比较少;
5.nginx 主要是 HTTP 和反向代理服务器, 低系统资源消耗.
常用四种算法:
1.rr:(默认)轮询, 轮流分配到后端服务器;
2.weight: 根据后端服务器性能分配;
3.ip_hash: 每个请求按访问 ip 的 hash 结果进行分配, 并发小时合适, 解决 session 问题;
4.fair:(扩展策略), 默认不被编译 nginx 内核, 根据后端服务器响应时间判断负载情况, 选择最轻的进行处理.
HAProxy 特点:
1. 支持两种代理模式: TCP(四层)和 HTTP(七层)转发, 支持虚拟主机;
2.配置简单, 支持 url 检测后端服务器状态;
3.仅做负载均衡软件使用, 在高并发情况下, 处理速度高于 nginx;
4.TCP 层多用于 MySQL 从 (读) 服务器负载均衡.
常用四种算法:
1.roundrobin: 轮询, 轮流分配到后端服务器;
2.static-rr: 根据后端服务器性能分配;
3.leastconn: 最小连接者优先处理;
4.source: 根据请求源 IP, 与 Nginx 的 IP_Hash 类似.
为什么要解决 session 会话呢?
负载均衡环境下, 每个用户都有可能不固定的访问后端服务器, 在有些应用情况下, 是必须要求在一定时间内同一用户访问的所有请求都分配给后端同一台服务器去处理, 例如: 电子商务网站, 用户注册页面等, 一刷新页面, 就会分配到后端的另一台服务器上, 那刚才的页面上的信息也都没了, 这种情况下, 分配同一台服务器处理请求是至关重要的!
来源: http://www.bubuko.com/infodetail-3298200.html