分享
负载均衡
输入“/”快速插入内容
负载均衡
飞书用户9207
2024年7月22日创建
147
负载均衡这个问题我被问到过两次,一次是钉钉的快问快答
面试官问我知不知道loadbalance 我口快直接说不知道,当时没反应过来这个单词的中文意思是什么🥲
快手面试的时候,面试问我mysql集群怎么找到要读数据的从节点,这个应该也是想问负载均衡吧。那么现在来写一下
什么是负载均衡,看完文章秒懂-CSDN博客
下面主要是对这篇文章做的一个总结
负载均衡的方式
软件负载均衡从通信层面来看,又可以分为四层和七层负载均衡。
根据用户的HTTP请求头和URL信息转发
DNS 重定向
DNS 负载均衡的工作原理就是:基于 DNS 查询缓存,按照负载情况返回不同服务器的 IP 地址。
优点
使用简单:负载均衡工作,交给 DNS 服务器处理,省掉了负载均衡服务器维护的麻烦
提高性能:可以支持基于地址的域名解析,解析成距离用户最近的服务器地址(类似 CDN 的原理),可以加快访问速度,改善性能;
缺点
可用性差:DNS 解析是多级解析,新增/修改 DNS 后,解析时间较长;解析过程中,用户访问网站将失败;
扩展性低:DNS 负载均衡的控制权在域名商那里,无法对其做更多的改善和扩展;
维护性差:也不能反映服务器的当前运行状态;支持的算法少;不能区分服务器的差异(不能根据系统与服务的状态来判断负载)。
HTTP 重定向
HTTP 重定向原理是:根据用户的 HTTP 请求计算出一个真实的服务器地址,将该服务器地址写入 HTTP 重定向响应中,返回给浏览器,由浏览器重新进行访问。
优点
方案简单
缺点
性能较差:每次访问需要两次请求服务器,增加了访问的延迟。
降低搜索排名:使用重定向后,搜索引擎会视为 SEO 作弊。
如果负载均衡器宕机,就无法访问该站点。
反向代理
反向代理(Reverse Proxy)方式是指以 代理服务器 来接受网络请求,然后 将请求转发给内网中的服务器,并将从内网中的服务器上得到的结果返回给网络请求的客户端。
优点
多种负载均衡算法:支持多种负载均衡算法,以应对不同的场景需求。
可以监控服务器:基于 HTTP 协议,可以监控转发服务器的状态,如:系统负载、响应时间、是否可用、连接数、流量等,从而根据这些数据调整负载均衡的策略。
缺点
额外的转发开销:反向代理的转发操作本身是有性能开销的,可能会包括创建连接,等待连接响应,分析响应结果等操作。
增加系统复杂度:反向代理常用于做分布式应用的水平扩展,但反向代理服务存在以下问题,为了解决以下问题会给系统整体增加额外的复杂度和运维成本:
反向代理服务如果自身宕机,就无法访问站点,所以需要有 高可用 方案,常见的方案有:主备模式(一主一备)、双主模式(互为主备)。
反向代理服务自身也存在性能瓶颈,随着需要转发的请求量不断攀升,需要有 可扩展 方案。
根据IP和MAC地址转发
修改 IP 地址