2010-08-21 12:08:01
sedo
View Mode: Normal | Article List
Category: 架构设计 | 1 | 2 | >
High Performance Web Sites - yahoo14条

由谁提出的
来自Yahoo! Exceptional Performance team

什么时候开始发起的
2004年开始研究,2007年4月开始,陆续发布,(5月,7月,9月)

为什么
Yahoo希望对自己的产品性能做出一些测量和改善

成绩
总结出14条提升WEB产品性能的准则(后续21条)



第一条:最小化HTTP请求(Frontend)

将CSS文件和JS文件合并(可行性不高)
CSS Sprites
Image Maps(很久以前经常使用的“热区”)
Inline Images,data:URL(浏览器兼容问题)

每天大概有40-60%的访问者去到我们的站点的时候都是empty cache,所以,
我们如果能够使得他们在第一次访问时速度更快,那对他们来说将获得很好的体验。



第二条:使用内容分发网络 (Server)

将静态文件分发到其他独立的服务器上。
目的:使得用户可以就近获取到...

Read More...

MVC模式已死

[ 2010-04-21 19:17:17 | Author: 振华 ]
MVC模式:Model模型 View试图 Control控制器,是目前主流模式,被当作服务器软件入门基本模式学习和掌握,主流框架Struts 1/2 JSF Wicket基本都顺理成章支持MVC模式。

但是,随着时间推移,MVC模式也暴露出大量缺点,因为MVC模式本质上是一个结构型模式,结构模式相比行为模式而言,实际就是静止的,相对固定的,而随着B/S和互联网应用不断普及,Web 2.0和社会化媒体 以及游戏等大量频繁交互应用普及,相对静止的MVC模式已经不适合高度交互注重行为的应用了。

DDD领域建模本身比较重视结构,它的实体 值对象和服务器是也是一种结构划分,但是没有强调对象职责行为的重要性,而这是对象和数据库唯一的区别,当然其上下文场景概念的提出,也可以认为体现了对角色和场景的重视,但远远不够。

相反,对象设计:角色、责任和协作"(Object Design: Roles, Responsibilities, and Collaborations))一书提出职责驱动开发,将对象行为上升为重点,提出了对象其实是在扮演某种角色,而角色是有职责的,然后会在一定场景上下文环境中实施一定交互行为,这些已经在Jdon进行了充分讨论:
...

Read More...

struts2 与 Spring MVC比较

[ 2010-04-17 21:26:51 | Author: 振华 ]
struts2框架是类级别的拦截,每次来了请求就创建一个Action,然后调用setter getter方法把request中的数据注入
struts2实际上是通过setter getter方法与request打交道的
struts2中,一个Action对象对应一个request上下文

spring3 mvc不同,spring3mvc是方法级别的拦截,拦截到方法后根据参数上的注解,把request数据注入进去
在spring3mvc中,一个方法对应一个request上下文

好了 我们来整理一下
struts2是类级别的拦截, 一个类对应一个request上下文,
springmvc是方法级别的拦截,一个方法对应一个request上下文,而方法同时又跟一个url对应
所以说从架构本身上 spring3 mvc就容易实现restful url
而struts2的架构实现起来要费劲
因为struts2 action的一个方法可以对应一个url
而其类属性却被所有方法共享,这也就无法用注解或其他方式标识其所属方法了

===================================
...

Read More...

开心网系统架构分析

[ 2009-10-31 17:04:10 | Author: 振华 ]
开心网是一个人气蛮高的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: 振华 ]
网站架构收集

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

举个例子,某页面浏览到一个地方卡住了,至少要等十几秒才出来内容。排查原因,浏览其他网站页面很快,说明客户端网络带宽没问题;浏览同个服务器上其他网站页面都很快,说明服务器的处理速度和网络带宽也没问题。分析代码可能有好几种情况,在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: 振华 ]
先将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...
1 | 2 | >