负载均衡器的基本知识
一 什么是负载均衡器
认识一下负载均衡器,如下图:
在服务器与请求之间,通过一定的策略,将不同的请求分发到不同的应用上去,其具备这样的优点:
- 高可用
- 故障转移
- 压力平分
二 负载均衡器的类别
负载均衡器根据软硬件分主要可以分为两种:
硬件的负载均衡
- 具备专门的系统,专门的策略等的硬件,性能是非常高的(缺点,例如美国的f5,一个成本最小也要十几万)
软件层面的负载均衡
- 例如haproxy等
从网络层面可以分为这两种:
四层代理
- linux中的lvs(tcp)
七层代理
- nginx的应用层面的代理(http)
七层网络协议我也不是很懂,网络这块确实是我的盲区,只能大概介绍一下,如下图:
四层与七层的简单对比:
四层负载均衡 | 七层负载均衡 | |
---|---|---|
功能性 | 少 | 多,支持资源压缩、更多策略 |
执行效率 | 高 | 相对较低 |
作用协议 | TCP | HTTP、FTP、SMTP |
应用场景 | 实时应用集群 大规模集群间数据交互 | Web应用集群 需要更多额外功能的应用集群 |
三 nginx的五种负载均衡模式
我们用得最多的软件层面的负载均衡器就是nginx。
其五种负载均衡模式如下:
- 轮询
- ip Hash (不能保证均衡)
- url Hash (不能保证均衡)
- 权重策略(配置upstream时候的weight)
- Fair(三方插件,其功能就是发现闲置或者延时较低的服务器,优先分发)