Web2.0网站如何实现负载均衡?
2008-06-20 16:08
183 查看
现在我们提Web2.0,其实早已经不是一个什么新鲜名词了,它已经渗透到了我们的网络生活中了。但是,Web2.0对于ICP们来说仍然是一个挑战,这个挑战之一就是如何快速地响应和用户的交互。因为Web2.0和Web1.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服务器上来的。并且会浪费大量的投资。
那么问题找到了,如何解决这个问题呢?
我们在研究市场上现有产品的时候,Array Networks的负载均衡的解决方案可以很好的来帮助用户解决难题。简单来说就是利用一种算法,根据用户访问的URL的不同,可以把请求发送到不同的Cache服务器上,同一个请求精确保证发送到同一个Cache服务器上。这样,按照前面的案例,最后整个系统设计容量基本上就是1000G了。也就真正使每台服务器投资发挥了效果,企业在CASH上的投资真正发挥了效率。
这种解决方案的另外一个好处就是:由于CASH的设计容量,比原来提高了,所以就减少了很多回服务器的请求,进而降低的服务器的负载,用户的响应速度就会变快,用户体验满意度也会随之增加,不会影响到企业关键业务的开展,彻底解决Cache方案带来的问题。
让我们先看看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服务器上来的。并且会浪费大量的投资。
那么问题找到了,如何解决这个问题呢?
我们在研究市场上现有产品的时候,Array Networks的负载均衡的解决方案可以很好的来帮助用户解决难题。简单来说就是利用一种算法,根据用户访问的URL的不同,可以把请求发送到不同的Cache服务器上,同一个请求精确保证发送到同一个Cache服务器上。这样,按照前面的案例,最后整个系统设计容量基本上就是1000G了。也就真正使每台服务器投资发挥了效果,企业在CASH上的投资真正发挥了效率。
这种解决方案的另外一个好处就是:由于CASH的设计容量,比原来提高了,所以就减少了很多回服务器的请求,进而降低的服务器的负载,用户的响应速度就会变快,用户体验满意度也会随之增加,不会影响到企业关键业务的开展,彻底解决Cache方案带来的问题。
相关文章推荐
- Web2.0网站如何实现负载均衡
- 浅析Web2.0网站如何实现负载均衡?
- 如何实现前端优化提高网站访问速度
- 如何在RedHat Linux上实现集群负载均衡
- 网站中如何实现分页
- 【大型网站技术实践】初级篇:借助LVS+Keepalived实现负载均衡
- Java网站中的自动登录功能如何实现 Session Cookie
- 如何实现基于框架的书籍交易网站的质量属性
- ORM,ASP.NET中ORM学习,ASP.NET中ORM学习心得,WEB2.0中ORM实现原理,Asp.net简单ORM示例源码详细讲解,Asp.net2.0:如何使用ObjectDataSource(配合ORM )
- 自适应网站banner有文字飞过的效果如何实现?
- 最近做了一个类似社交的网站,看到新浪微博右侧有一个网页在线聊天的功能,如何才能实现网页在线聊天功能(新浪微博这种聊天)?
- 如何用Python,C#等语言去实现抓取静态网页+抓取动态网页+模拟登陆网站
- Sharepoint共享文档库,如何通过Event Handler实现跨网站访问
- Nginx简单实现网站的负载均衡
- 如何正确实现PHP网站优化
- 如何能够使自己的网站实现发送邮件的功能?
- 【nginx网站性能优化篇(3)】反向代理实现负载均衡
- EIGRP中只有Successor没有Feasible Successor的时候如何实现负载均衡
- 项目开发中的一些注意事项以及技巧总结 基于Repository模式设计项目架构—你可以参考的项目架构设计 Asp.Net Core中使用RSA加密 EF Core中的多对多映射如何实现? asp.net core下的如何给网站做安全设置 获取服务端https证书 Js异常捕获
- 如何实现 网站在线人数以及历史访问人数的统计