周六的技术交流会,总的来讲,还是很不错的,以后建议大家多去参加这种交流会,可以扩充下知识面,其中大众点评网的架构师讲的有几点,印象极为深刻:
(幻灯片见老赵博客:http://blog.zhaojie.me/2010/06/first-snda-dotnet-conference-all-slides.html)
1. 欺骗CDN的版本控制,g.base.v54.css
<link rel="stylesheet" href="http://i2.dpfile.com/s/css/g.base.v53.css" type="text/css" />
<link rel="stylesheet" href="http://i2.dpfile.com/s/css/c.index.v11.css" type="text/css" />
目前我们的静态文件(如css,js)的版本控制是在后面加个“?t=…”,有些cdn会忽略掉后面的参数,发布版本的时候,同步会有些问题。
2. 合并js文件:
<script type="text/javascript" src="http://i2.dpfile.com/combo/_s_js_g.mt.min.js-_s_js_g.dp.min.js-_s_res_ga.js/12_47.js"></script>
文件仍然是以单个js的形式存放在服务器上,当请求http://i2.dpfile.com/combo/_s_js_g.mt.min.js-_s_js_g.dp.min.js-_s_res_ga.js/12_47.js 时,服务器端自动合并3个js文件成一个,从而减少请求。
3. 如何:大批量缓存对象的清理
如果缓存出错了,需要清理缓存的话,重启下缓存服务,这样突然间会给数据库服务器增加很大的压力,点评网的做法是,在每个缓存的Key中加入版本号,这样只要升级版本号即可,可以减少对数据库的冲击(具体原因,还没想通,会上很可惜也没机会提问)
4. 访问控制系统
对于恶意访问的用户,禁止其访问(可以有效防刷),具体做法应该是在页面ApplicationBeginRequestHandler的时候,通过某种机制判断该用户是否正常访问,如果不是则Response.End掉。
5. No SQL Join,从业务设计到技术实现上都要有贯彻
连接查询,从业务设计到技术实现上都要谨慎,尽量不要用,后期由于流量上升需要分库,或者分表会减少很多麻烦。
出处:http://maobisheng.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。