csdn作为国内最大的程序开发社区,影响了足足一代人。它是国内优秀杂志《程序员》的网站,我从前非常喜欢《程序员》这本杂志,里面的文章都非常优秀,那时只有5元钱的我每个月花10块钱买本这样的杂志,看个三五年,都舍不得丢下。
但是今天观察了下csdn站点的架构,发现做的比较简单,看来开发者比较喜欢从程序着手,着重优化代码和数据库,对系统整体架构思考的时间不多。
我着重看了几个二级域名:www、news、bbs/community和blog,其中www、news这些静态文件都有通过squid缓存,用的app_squid架构,然后是dns轮询做分流。
在这里顺便讨论下为什么很多大型网站都喜欢用dns轮询来作首页,而不采用lvs或其它负载均衡策略。这是因为负载均衡都是把所有的访问先集中到一个ip上,因为只有一个ip,所以无意间这个ip的稳定性就关系重大了。ip稳定性会受很多因素影响:n个交换机、线路、机器等等,颇为复杂。而首页很有可能会用到异地的负载均衡,这么来不用dns,方案就很难设计了。现在的常用浏览器和下载软件,都有对dns的故障处理机制,所以dns也是可以屏蔽掉一些故障的,虽然功能不强,但也较为实用;相比之下,即使是lvs也会有很多杂七杂八的问题,反而不如dns性能强和稳定。
csdn静态页前端缓存(2009-05-11):
Address: 211.100.26.121
Address: 211.100.26.122
Address: 211.100.26.123
Address: 211.100.26.124
这四台机器squid版本:2.6.STABLE14,能够揪出很多问题来:
1) 从文件打开数可见编译参数都是不同的,或是系统配置参数不同?机器分了两批上线吧。
2) 居然没有编译开启epoll,性能看来好不了,重新编译下吧。
3) 缓存没有细致调优,所以这几台机的命中率很低,大量穿透,我估计是重启squid的时候没有清理缓存文件夹造成。
4) 很多内容都没有expires头,这也不能算什么问题,稳定就好,IIs要细致定义expires也很麻烦。
5) 这些静态页面都不支持gzip压缩,浪费了不少带宽,此问题应归罪于IIs和squid的配合问题,可加nginx中层代理处理它。
由此可见csdn的系统管理员对系统都不太上心,从另一个角度讲,系统嘛stable就好,管它优不优化,我觉得这个心态也非常赞。
有兴趣可以参考:
http://sudone.com/linux/squid_mgr.html
这篇文章,然后用:
squidclient -p80 -hwww.csdn.net mgr:info看下。
blog和community这两个多数是动态页面,csdn没有作静态化处理,所以就没有缓存,直接去了后台,最近其增加了nginx,使用nginx来作负载均衡。
在nginx后面有多少台IIs,不能探得出来,回想起从前csdn那非常不稳定的状态,加了个nginx确实好了很多,由于使用了nginx,所以这两个系统支持压缩就变得顺理成章。
bbs没有使用缓存也都说得过去,但像blog这样的系统,都没有使用缓存,觉得非常遗憾,事实上这两个系统都可以用squid完全缓存,csdn从此就可以非常稳定了,但前面也提到了,开发者通常喜欢从自己写的代码里着手优化,这是思维上的局限性,我自己也花了好多年才跳出这个框框,明白了系统优化要从整体入手这么条简单的道理。csdn使用nginx来负载均衡,也是有所领悟,希望他们能更放得开,更为进步。我希望我喜欢的网站都非常稳定快速,这样我在网上闲逛的时候会更顺心些,像csdn、天涯和网易评论这些东东我都是非常之恨的,不过他们都在进步,算是好事。
因为csdn的前端架构太简单,所以图我也懒得画了,事实上估计csdn也不是简单的东西,好多逻辑都被藏在代码和数据库那头,这不可得知。因为csdn代码层使用的是windows主机和asp.net,既然使用了windows,那么棘手的事肯定不会少,还是要找更好的前端,把这些app服务器盖得严严实实为妙,稍有疏漏的话恢复服务的时间就长了。
--------------------------------------------------------------------------------
分享到:
相关推荐
多层架构的大型.NET OA 系统,c#开发,可以供大家参考
系统名称:双鱼林asp.net图书信息管理系统学习版 系统功能: (1)系统分两种身份:管理员和读者,读者可以分为不同的类型,每种类型借书天数和续借天数都不一样!...http://download.csdn.net/detail/cleopard/8340303
6 3.1 详细需求分析 6 3.2 详细系统运行环境及限制条件分析接口需求分析 6 4 总体方案确认 7 4.1 系统总体结构确认 7 4.2 系统详细界面划分 7 4.2.1 应用系统与支撑系统的详细界面划分 7 4.2.2 系统内部详细界面划分...
第一团购系统是基于Web应用的B/S架构的团购网站,本程序采用目前软件开发IT业界较为流行的ASP.NET和SQLSERVER2000数据库开发技术架构。从功能层面来看,前台首页每天显示一个服务或插产品的限时限最低成团人数的团购...
内含ppt,视频,文档,示例!!!!!!!
ASP.NET MVC 4 插件化架构简单实现 ...http://blog.csdn.net/hao_ds/article/details/42102969 ASP.NET MVC 4 插件化架构简单实现-实例篇 http://blog.csdn.net/hao_ds/article/details/42103111
系统软件架构师考试培训讲义,系统架构师基础讲义,比较全面,有利于全面复写。可以提升考试的通过率。介绍比较详细。对大家很有帮助
内容概要:本电商系统主要使用ASP.NET技术+BootStrap前端框架+SQLServer数据库,通过对该系统的设计,简化代码实现过程,保留核心功能,可以在实践过程中掌握ASP.NET技术的部分使用方法,如对三层架构开发模式的熟悉...
[Part 1/5] http://download.csdn.net/source/1345609 [Part 2/5] http://download.csdn.net/source/1345649 [Part 3/5] http://download.csdn.net/source/1345674 [Part 4/5] ...
[Part 1/5] http://download.csdn.net/source/1345609 [Part 2/5] http://download.csdn.net/source/1345649 [Part 3/5] http://download.csdn.net/source/1345674 [Part 4/5] ...
[Part 1/5] http://download.csdn.net/source/1345609 [Part 2/5] http://download.csdn.net/source/1345649 [Part 3/5] http://download.csdn.net/source/1345674 [Part 4/5] ...
很适合初次接触android的朋友们,可供大家入门使用。
该系统采用三层架构,B/S结构, 功能不是很完美,授课计划功能还需完成, 内附 数据库,源代码。
asp.net 三层架构 网络相册 1.使用vs2010开发,发布的平台版本是.net 2.0,如果大家没有vs2010,可以用其他版本的vs新建工程再重新添加代码进去. ...请点此下载新版http://download.csdn.net/source/3322990
(详细请看:https://blog.csdn.net/dgthm?type=blog) 2,此框架服务端没有使用任何第三方控件,相比其它中间件,使用很多第三方插件,且绑定一些自研控件,此框架使用更放心;也没有使用多少高大上的技术;主要...
[Part 1/5] http://download.csdn.net/source/1345609 [Part 2/5] http://download.csdn.net/source/1345649 [Part 3/5] http://download.csdn.net/source/1345674 [Part 4/5] ...
[Part 1/5] http://download.csdn.net/source/1345609 [Part 2/5] http://download.csdn.net/source/1345649 [Part 3/5] http://download.csdn.net/source/1345674 [Part 4/5] ...
资源包含文件:lunwen文档+项目源码及数据库文件+运行说明 包括SpringMVC框架、MyBatis技术、Eclipse开发环境、...详细介绍参考:https://biyezuopin.blog.csdn.net/article/details/124607904?spm=1001.2014.3001.5502
基于Asp.net实现酒店管理系统,数据库采用MSSqlServer,架构采用三层架构。适合初学者以及毕业设计。
【软考】架构设计师论文案例分享【软考】架构设计师论文案例分享【软考】架构设计师论文案例分享【软考】架构设计师论文案例分享【软考】架构设计师论文案例分享【软考】架构设计师论文案例分享【软考】架构设计师...