View Mode: Normal | Article List
Category: Design | < | 1 | 2 | 3 | >

开心网系统架构分析

[ 2009-10-31 17:04:10 | Author: zhenhua ]
开心网是一个人气蛮高的sns社区,虽然在走下坡路了,在国内依然算是顶尖了,今天我们就来分析一下开心网的设计架构是怎样的。因为手头没有这方面的资料,也没有和开心网的程序员有过什么交流,所以今天所写的一切都是自己的猜测而已。不能对号入座。

关于开心网的系统架构分析

一.入口篇
从http://www.kaixin001.com/,从这个页面可以看到,开心网的图片,是放在http://img.kaixin001.com上的,做了程序与图片的分离(http://www.kaixin001.com/i...这个不知为什么没有分离)。
下面来看一下开心网前端的服务器情况,nslookup一下,可以看到,一共有下面的17个IP
220.181.66.138,123.103.12.24,123.103.12.25,123.103.12.26,123.103.12.27
123.103.12.28,123.103.12.36,123.103.12.37,123.103.12.38,123.103.12.39
123.103.101.98,123.103.101.107,12...

Read More...

网站架构收集

[ 2009-10-31 00:11:22 | Author: zhenhua ]
网站架构收集

来自sudone.com 服务器系统架构分析日志
csdn.net的系统架构研究 http://sudone.com/archie/csdn_archive.html
图片服务器的hash架构 http://sudone.com/archie/image_hash.html
天涯bbs系统架构分析 http://sudone.com/archie/tianya.cn.html
v.2008.163.com对新架构的尝试 http://sudone.com/archie/v.2008.163.com.html
nginx和squid配合搭建的web服务器前端系统 http://sudone.com/archie/app_nginx_squid.html
nginx作为最前端的web cache系统 http://sudone.com/archie/app-nginx-squid-nginx.html
新型的大型bbs架构(squid+nginx) http://sudone.com/archie/archi_bbs.html
当前比较适用的海量小文件系统架构方案 ...

Read More...

页面加载对访问的影响

[ 2009-10-30 23:43:51 | Author: zhenhua ]
页面访问慢是网站公认的死穴,如果页面都没法访问,往后再精彩的体验都等于零。这个问题如果专业点说,叫做“加载”呈现效率。那么具体了讲,除常规的服务器处理速度、服务器端网络带宽、客户端网络带宽等“硬”问题外,有哪些是技术上没处理好的“软”问题?

举个例子,某页面浏览到一个地方卡住了,至少要等十几秒才出来内容。排查原因,浏览其他网站页面很快,说明客户端网络带宽没问题;浏览同个服务器上其他网站页面都很快,说明服务器的处理速度和网络带宽也没问题。分析代码可能有好几种情况,在YUI官方加速网站的最佳办法提到了13条方法,对于普通产品来说,个人认为有几条应该强化注意,其他(灰色)从性价比上来说则成本有点高。
  • Make Fewer HTTP Requests 更少的HTTP请求
  • Use a Content Delivery Network 使用CDN
  • Add an Expires Header 指定过期时间
...

Read More...

Struts 标签与JSP效率对比

[ 2009-10-30 23:40:12 | Author: zhenhua ]
先将Struts标签与JSP的代码进行比较

1.JSP版本
 < % long s=System.currentTimeMillis();%>
< SPAN style="DISPLAY: none">

< % for(int i=0;i<10000;i++){%>

< %=theAction.getQueryString()%>

< %}%>

< /SPAN>

< % long e=System.currentTimeMillis();%>

< %=(e-s)%>
2.webwork (webwork版本,也可换成Struts标签)
 < % long s=System.currentTimeMillis();%>
< % for(int i=0;i<10000;i++){%>

< ?xml:namespace prefix = ww />< ?xml:namespace prefix = ww />

< %}%>

< /SPAN>

< % long e=System.currentTimeMillis();%>

< %=(e-s)%>
...

Read More...

web架构设计经验分享

[ 2009-10-21 13:16:27 | Author: zhenhua ]
转自http://blog.csdn.net/yizhu2000


本人作为一位web工程师,着眼最多之处莫过于 性能与架构,本次幸得参与sd2.0大会,得以与同行广泛交流,于此二方面,有些心得,不敢独享,与众博友分享,本文是这次参会与众同撩交流的心得,有兴趣者可以查看视频
架构设计的几个心得:

一,不要过设计:never over design

这是一个常常被提及的话题,但是只要想想你的架构里有多少功能是根本没有用到,或者最后废弃的,就能明白其重要性了,初涉架构设计,往往倾向于设计大而化一的架构,希望设计出具有无比扩展性,能适应一切需求的增加架构,web开发领域是个非常动态的过程,我们很难预测下个星期的变化,而又需要对变化做出最快最有效的响应。。
ebay的工程师说过,他们的架构设计从来都不能满足系统的增长,所以他们的系统永远都在推翻重做。请注意,不是ebay架构师的能力有问题,他们设计的架构总是建立旧版本的瓶颈上,希望通过新的架构带来突破,然而新架构带来的突破总是在很短的时间内就被新增需求淹没,于是他们不得不又使用新的架构
web开发,是个非常敏捷的过程,变...

Read More...
关键字: 水平切分,分库,分表,主从,集群
第1章 引言
随着互联网应用的广泛普及,海量数据的存储和访问成为了系统设计的瓶颈问题。对于一个大型的 互联网应用,每天几十亿的PV无疑对数据库造成了相当高的负载。对于系统的稳定性和扩展性造成了极大的问题。通过数据切分来提高网站性能,横向扩展数据层 已经成为架构研发人员首选的方式。水平切分数据库,可以降低单台机器的负载,同时最大限度的降低了了宕机造成的损失。通过负载均衡策略,有效的降低了单台 机器的访问负载,降低了宕机的可能性;通过集群方案,解决了数据库宕机带来的单点数据库不能访问的问题;通过读写分离策略更是最大限度了提高了应用中读取 (Read)数据的速度和并发量。目前国内的大型互联网应用中,大量的采用了这样的数据切分方案,Taobao,Alibaba,Tencent,它们大 都实现了自己的分布式数据访问层(DDAL)。以实现方式和实现的层次来划分,大概分为两个层次(Java应用为例):JDBC层的封装,ORM框架层的 实现。就JDBC层的直接封装而言,现在国内发展较好的一个项目是被称作“变形虫”(Amoeba)的项目,由阿里集团的研究院开发,现在仍然处于测试阶 ...

Read More...
关键字: 大型网站架构
之前也有一些介绍大型网站架构演变的文章,例如 LiveJournal的、 ebay的,都是非常值得参考的,不过感觉他们讲的更多的是每次演变的结果,而没有很详细的讲为什么需要做这样的演变,再加上近来感觉有不少同学都很难明白为什么一个网站需要那么复杂的技术,于是有了写这篇文章的想法,在这篇文章中 将阐述一个普通的网站发展成大型网站过程中的一种较为典型的架构演变历程和所需掌握的知识体系,希望能给想从事互联网行业的同学一点初步的概念, :),文中的不对之处也请各位多给点建议,让本文真正起到抛砖引玉的效果。

架构演变第一步:物理分离 webserver和数据库
最开始,由于某些想法,于是在互联网上搭建了一个网站,这个时候甚至有可能主机都是租借的,但由于这篇文章我们只关注架构的演变历程,因此就假设这个时候 已经是托管了一台主机,并且有一定的带宽了,这个时候由于网站具备了一定的特色,吸引了部分人访问,逐渐你发现系统 的压力越来越高,响应速度越来越慢,而这个时候比较明显的是数据 库和应用互相影响,应用出问题 了, 数据库也很容易出现问题,而数据...

Read More...