盛大创新院赞助首届.NET技术交流会

周六的技术交流会,总的来讲,还是很不错的,以后建议大家多去参加这种交流会,可以扩充下知识面,其中大众点评网的架构师讲的有几点,印象极为深刻:

(幻灯片见老赵博客: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,从业务设计到技术实现上都要有贯彻

    连接查询,从业务设计到技术实现上都要谨慎,尽量不要用,后期由于流量上升需要分库,或者分表会减少很多麻烦。

你可能感兴趣的:(.net)