负载均衡是什么
# 负载均衡是什么
在业务初期,通常采用单台服务器即可满足需求,随着用户流量增长,单台服务器逐渐难以应对压力,这时我们会将多台服务器组成集群来提升处理能力,为了统一管理流量入口,需要通过负载均衡器将海量请求按照预设算法,智能分发到集群中不同服务器,这就是负载均衡。
广义的负载均衡器可分为3中:
1.DNS负载均衡:通过DNS解析,将域名解析到不同服务器IP,从而将流量分发到不同服务器,但DNS解析结果可能存在缓存,导致分发结果不准确。
用户访问域名www.aq.com通过DNS解析到多个IP,然后访问每个IP对应的服务器实例,就完成了流量调度。它没有使用常规的负载均衡器,但也的确完成了简单负载均衡的功能,优点是简单,成本低。缺点是,服务器故障切换延迟大,DNS与用户之间是层层的缓存,即便故障发生时,(域名解析缓存:浏览器缓存,操作系统缓存,/etc/hosts缓存,DNS缓存)DNS解析结果可能仍会分发到故障服务器,导致用户访问失败。
通过及时修改DNS或摘除故障服务器,但由于中间经过运营商的DNS缓存,且缓存很有可能不遵循TTL规则,导致DNS生效时间缓慢,仍访问到故障服务器。另外,它的流量调度策略简单,支持的算法较少。DNS一般只支持RR的轮询方式。实际上生产环境中很少用这种方式来实现负载均衡。描述DNS负载均衡方式,只是为了让你能够更清楚了解负载均衡的概念。
一般大公司也会使用DNS来实现地理级别的负载均衡,实现就近访问,提高访问速度,这种方式一般是入口流量的基础负载均衡。下层会有更专业的负载均衡设备实现负载架构。
2.硬件负载均衡:通过硬件设备实现负载均衡,如F5,硬件负载均衡性能稳定,但价格昂贵。
专门的硬件设备来实现,类似于交换机路由器,是一个负载均衡专用的网络设备,目前业界典型的硬件负载均衡设备主要有两款:F5,和A10.这类设备性能好,功能强大,但价格非常昂贵。优点,性能强,功能强大,价格贵。
3.软件负载均衡:通过软件实现负载均衡,如Nginx,LVS,HAProxy,软件负载均衡灵活,成本低廉,但性能不及硬件负载均衡。
它是指可以在普通服务器上运行的负载均衡软件,实现负载均衡功能,Nginx,LVS,HAProxy
Nginx是7层负载均衡 支持HTTP协议。(OSI:七层模型有应用层,表示层,会话层,传输层,网络层,数据链路层,物理层)
HAproxy也是7层负载均衡软件,性能也很不错,而LVS是纯4层的负载均衡,运行在内核态,性能是软件负载均衡中最高的,因为是在四层,所以也更通用一些。 软件负载均衡的特点:部署简单,便宜,灵活
LVS开源软件,节省成本。