大型网站架构分析转

大型网站架构分析转

ID:30445867

大小:96.65 KB

页数:17页

时间:2018-12-30

大型网站架构分析转_第1页
大型网站架构分析转_第2页
大型网站架构分析转_第3页
大型网站架构分析转_第4页
大型网站架构分析转_第5页
资源描述:

《大型网站架构分析转》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、大型网站架构分析转大型网站架构分析(转)2011年04月27日星期三下午01:24千万人同时访问的网站,一般是有很多个数据库同时工作,说明白一点就是数据库集群和并发控制,这样的网站实时性也是相对的。这些网站都有一些共同的特点:数据量大,在线人数多,并发请求多,pageview高,响应速度快。总结了一下各个大网站的架构,主要提高效率及稳定性的几个地方包括:1、程序程序开发是一方面,系统架构设计(硬件+网络+软件)是另一方面。软件架构方面,做网站首先需要很多web服务器存储静态资源,比如图片、视频、静态页等,千万不要把静态资源和应用服务器放在一起。一个好的程序员写出来的程序会非常简洁、性

2、能很好,一个初级程序员可能会犯很多低级错误,这也是影响网站性能的原因之一。网站要做到效率高,不光是程序员的事情,数据库优化、程序优化这是必须的,在性能优化上要数据库和程序齐头并进!缓存也是两方面同时入手。第一,数据库缓存和数据库优化,这个由dba完成(而且这个有非常大的潜力可挖,只是由于我们都是程序员而忽略了他而已)。第二,程序上的优化,这个非常的有讲究,比如说重要一点就是要规范SQL语句,少用in多用or,多用preparestatement存储过程,另外避免程序冗余如查找数据少用双重循环等。另外选用优秀的开源框架加以支持,我个人认为中后台的支持是最最重要的,可以选取spring+

3、ibatis。因为ibatis直接操作SQL并有缓存机制。spring的好处就不用我多说了,IOC的机制可以避免new对象,这样也节省开销。据我分析,绝大部分的开销就是在NEW的时候和连接数据库时候产生的,请尽量避免。另外可以用一些内存测试工具来做一个demo说明hibernate和ibatis谁更快!前台你想用什么就用什么,struts,webwork都成,如果觉得自己挺牛X可以试试用tapestry。用数据库也未必不能解决访问量巨大所带来的问题,作成静态文件硬盘的寻址时间也未必少于数据库的搜索时间,当然对资料的索引要下一翻工夫。我自己觉得门户往往也就是当天、热门的资料点击率较高,

4、将其做缓存最多也不过1~2G的数据量吧,举个例子:◎拿网易新闻来说格式化一下,方便理解:域名/年/月日/新闻所属分类/新闻ID.html可以把当天发布的、热门的、浏览量大的作个缓存,用hashtable(key:年-月-日-分类-ID,value:新闻对象),静态将其放到内存(速度绝对快过硬盘寻址静态页面)。通常是采用oracle存储过程+2个weblogic,更新机制也几乎一样每签发一条新闻,就会生成静态页面,然后发往前端的web服务器,前端的web都是做负载均衡的。另外还有定时程序,每5-15分钟自动生成一次。在发布新闻的同时将数据缓存。当然缓存也不会越来越大,在个特定的时间段(

5、如凌晨)删除过期的数据。做一个大的网站远没有想象中那么简单,服务器基本就要百十个的。这样可以大大增加一台计算机的处理速度,如果一台机器处理不了,可以用httpserver集群来解决问题了。2、网络中国的网络分南电信和北网通,访问的ip就要区分南北进入不同的网络。3、集群通常会使用CDN与GSBL与DNS负载均衡技术,每个地区一组前台服务器群,比如新浪和搜狐,而网易,百度使用了DNS负载均衡技术,每个频道一组前台服务器;一搜使用了DNS负载技术,所有频道共用一组前台服务器集群。网站使用基于Linux集群的负载均衡,失败恢复,包括应用服务器和数据库服务器,基于linux-ha的服务状态检

6、测及高可用化。应用服务器集群可以采用apache+tomcat集群和weblogic集群等;web服务器集群可以用反向代理,也可以用NAT的方式,或者多域名解析都可以;Squid也可以,方法很多,可以根据情况选择。4、数据库因为是千万人同时访问的网站,所以一般是有很多个数据库同时工作的,说明白一点就是数据库集群和并发控制,数据分布到地理位置不同的数据中心,以免发生断电事故。主流的数据库有Sun的是MySQL和Oracle。Oracle是一款优秀的、广泛采用的商业数据库管理软件。有很强大的功能和安全性,可以处理相对海量的数据。而MySQL是一款非常优秀的开源数据库管理软件,非常适合用多

7、台PCServer组成多点的存储节点阵列(这里我所指的不是MySQL自身提供的集群功能),每单位的数据存储成本也非常的低廉。用多台PCServer安装MySQL组成一个存储节点阵列,通过MySQL自身的Replication或者应用自身的处理,可以很好的保证容错(允许部分节点失效),保证应用的健壮性和可靠性。可以这么说,在关系数据库管理系统的选择上,可以考虑应用本身的情况来决定。MySQL数据库服务器的master-slave模式,利用数据库服务器在主从服

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。