首页 > 代码库 > 那些年的网站负载技术
那些年的网站负载技术
Internet的规模每一百天就会增长一倍,客户希望获得7天24小时的不间断可用性及较快的系统反应时间,而不愿屡次看到某个站点“Server Too Busy”及频繁的系统故障。
负载均衡是所有大中型网站必备的部署。显然,大型网站每天上千万独立IP的访问量,一台Web服务器根本承担不了,网站后台必需有多台服务器共同工作,因此各种负载均衡技术就应运而生了。
?随着访问量的增加,单台服务器承受压力的能力始终是有限的。
?可能出现某一时期内访问量的巨大增加,而之后处理相对常规的状态。
?虽然可以尽力保证服务器的正常运转,但难免会有个别服务器出现故障。
要应付以上状况,要求服务器具有相应的伸缩性和容灾性。为应对此种可能的情况,应对方式是建立服务器集群,以一组服务统一对外服务,如果网络负载平衡中的一台或几台服务器不可用时,服务不会中断。网络负载平衡自动检测到服务器不可用时,能够迅速在剩余的服务器中重新指派客户机通讯。
网络负载平衡技术保证即使是在负载很重的情况下它们也能作出快速响应。
镜像
负载均衡有一个极为简单的方法,就是建立镜像站点。比如华军软件或者天空软件,都直接采用了镜像站点。
这个方式很直接,省去了很多麻烦。
麻烦:就是每一次选择都是人工手动选择。
DNS
?较早的负载均衡是DNS负载均衡。
?原理很简单,只要在域名解析的时候,将多个地址配置成同一个域名
?优点是简单易用,但是DNS负载均衡还是有一些问题存在。如果某一台服务器发生了故障,而DNS的下一个刷新周期又没到,这样就可能导致某些用户无法访问站点的情况发生。而另一个缺点在于DNS负载均衡随机性太强。
CDN
CDN( Content Delivery Network),内容分发网络也是大型网站必备的部署之一。CDN的原理不难理解,就是将网页内容存放到离用户更近的缓存服务器上,减少路由,从而加快远距离的访问速度。比如说,你随意登陆一个国外小站,速度可能很慢。因为国外网站到国内的最终客户端的路径冗长,但是如果你登陆部署了CDN的网站,比如 Plentyoffish.com,你会发现速度非常快,跟国内的网站访问速度差异已经无法从感知上判断。依照Cache存放的位置不同,CDN也有一些类别,不同的网站会根据具体需求,有不同的选择。CDN通常是由独立的CDN商提供的。
NLB
Windows 2003 自带的 负载平衡(负载均衡)——Network Load Balancing,简称NLB。NLB是一种集成高可用性,高可靠性和高扩展性的集群。当用户访问集群的时候,集群能将访问请求分摊到集群中的每个服务器上,以达到均衡负载的效果。这些服务器被称为集群节点。Windows server 2003 最多支持32个节点。
LVS
LVS名气很大,并由国产大牛开发,经过淘宝超大规模的实践,网上资料很多。
NGINX
NGINX以其高性能闻名于世,很多大公司也用它作二级反向代理,其配置非常简单,并且可以在不停止服务的情况下重新加载配置文件。越来越多的网站开始部署Nginx。 淘宝团队在其基础上发展了Tengine分支,支持lua脚本,有兴趣可以关注。
那些年的网站负载技术