与同学一同至青城山游玩,不巧今天下雨,只好提前打道回府。正好留出今天下午的时间继续学习,一周一篇自学文章不能间断。
一个较大型的网站、或业务系统,一定会在存在业务负载分担的需求。传统在私有云的方案中,会有多种可供选择的方案;今天结合公有云一起来探讨4种负载均衡的方案。
用户访问网站,首先访问到重定向服务器,该重定向服务器根据用户的访问属性向用户返回真实的web服务器地址(附带状态码302)。用户再次向真实的web服务器发起业务访问请求。
该方式优点是
简单、并且可以在重定向服务器中根据自己的需求改策略;缺点是
效率低,每次访问都需要跳转。在项目中用得并不多。
在DNS服务器的A记录中配置多个web服务器的地址,并可根据服务器的性能配置权重。不同的用户会获得不同的web服务器的地址,因客户计算机有DNS的缓存,一定时间内访问的web服务器是固定的。
该方式的好处是
简单,将转发的任务交给了dns服务商;缺点是
不灵活,dns负载均衡的策略少,另一个重大缺点是
全网同步慢,如果下线、上线web服务器有几十分钟甚至几个小时的时间,甚至当某台服务器down机,dns也是不知道的。
一般我们用nginx作应用层的反向代理服务器。客户的请求首先到nginx,再通过nginx负载均衡到真实的web服务器,反向代理服务器可以配置转发策略,并可以作本地静态内容的缓存。
该方式的好处是安全性较好,真实的web服务器不需要外网地址;缺点是反向代理服务器可能成为性能瓶颈。实际在私有云中应用非常之大,适合有一定运维能力的公司选用。
该方案看上去与方案3类似,但差别很大。方案3是应用层面的负载均衡,而方案4是网络层面的负载均衡。
该方式在公有云中是标配的解决方案,优点是简单,缺点仍是负载均衡器会成为瓶颈。