说起Web,分为2.0和1.0这是众所周知的。从后台搬到前台,从程序员到用户。平台的扩展,带来的信息交换也是我们需要改进的地方。在Web2.0中,以种类繁多的应用为代表,为负载均衡技术提出了更高的要求。那么在实际应用案例中我们将怎么解决服务器的压力的呢?
让我们先看看Web2.0和Web1.0在哪些方面有重大区别。现在各种各样的网站,包括博客、论坛、门户网站、社区网站、视频网站等等,都可以在里面找到WEB2.0的影子。在WEB2.0的网站中,有以下几个特点和负载均衡有关:
***、Web2.0网站的内容变成海量的内容。以前一个网站可能就是几百个G就算多的了,但是现在不一样,现在一个使用WEB2.0技术的网站,内容可能就变成一个几个T、几十个T甚至更多。这是WEB2.0的一个普遍特点,就是内容变成海量了。
第二、Web2.0网站的用户访问、交互性更强。Web1.0网站访问时,也有一定的交互,比如输入域名按回车,那时候有一些交互,内容拿下来就是存在本地页面的内容,在点击刷新或变更地址后才向后台请求新的内容出来。 WEB2.0不一样,不断有一些交互性的内容,特别是动态变化内容,比如你看到一个股市变化行情的页面的时候,发现老是在变,行情老是在变,图线经常会变化,随着实时的行情,这就是利用了WEB2.0很多技术在里面,而这种应用的特点,带来的就是给后台服务器的压力就变大了。
第三、WEB2.0网站是以用户为中心,个性化的服务。像博客、播客,是我们自己每个人提供内容,让所有人来看,就变得整个WEB网站服务特点,由一种原来简单集中提供内容,大家浏览的模式,变成我们每个人都可以提供东西,每个人在找我们个性的东西,然后每个人通过寻找个性东西,寻找自己需要的信息。
由于以上特点,很可能会因为Web服务器的性能和相关应用系统的性能,成为外部终端用户访问的瓶颈,所带来的是网络访问的响应延迟,甚至是链接中断。这将大大影响作为网络信息提供者在网络用户中的形象,从而影响到企业关键业务的开展,这将是企业所不希望发生的。
针对以上特点,目前很多Web2.0网站采取利用Cache技术实现负载均衡来减轻 Web服务器的压力。也就是在Web服务器的前面摆上一堆SQUID CACHE,SQUID CACHE重复内容会缓冲在CACHE里面,所以下一次有人同样访问同一个内容,就会由CACHE来反映,服务器压力就变轻了,以前访问搜狐,搜狐上面有图片广告,***个人访问之后,会存在CACHE,第二个人访问的时候,就会从CACHE把这个广告传给了第二个人,CACHE能够很好降低系统压力的手段。
但是,这里面有一个很重要问题,就是Web2.0网站内容可能是由几百个G变成T,甚至上百个T内容,而根据CACHE的工作原理,***导致CACHE服务器里面的内容会趋于一致!比如有10台CACHE服务器,每个都是100G的存储空间,从系统设计容量来看,可以认为,整个容量应该是 1000G(10x100G)。但是CACHE的工作原理是只要访问的东西,就会都存下来。从长期积累来看,***造成这10台CACHE服务器存储的内容都变成一样的内容,同样的图片在10台上都有。在这种情况下,可以想像一下,随着时间的积累,***整个网站的CACHE服务器的容量,就不是10台乘 100G,而是还是100G,因为内容都一样,实际上缓存内容的总量就是100G。
所以,这种负载均衡方式只是推迟了产生负载压力的时间,没有从根本上解决问题,经过一段时间后,99%的请求还是会回到Web服务器上来的。并且会浪费大量的投资。
那么问题找到了,如何解决这个问题呢?
我们在研究市场上现有产品的时候,(Barracuda Networks)梭子鱼公司的负载均衡的解决方案可以很好的来帮助用户解决难题。简单来说就是利用一种负载均衡算法,根据用户访问的URL的不同,可以把请求发送到不同的Cache服务器上,同一个请求精确保证发送到同一个Cache服务器上。这样,按照前面的案例,***整个系统设计容量基本上就是 1000G了。也就真正使每台服务器投资发挥了效果,企业在CASH上的投资真正发挥了效率。
这种解决方案的另外一个好处就是:由于CASH的设计容量,比原来提高了,所以就减少了很多回服务器的请求,进而降低的服务器的负载,用户的响应速度就会变快,用户体验满意度也会随之增加,不会影响到企业关键业务的开展,彻底解决Cache方案带来的问题。