csdn.net的系统架构研究

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服务器盖得严严实实为妙,稍有疏漏的话恢复服务的时间就长了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
软考系统架构师考试是一项涉及到企业级系统架构设计和管理的考试。通过该考试,考生需要展示自己具备设计和规划复杂系统架构的能力,并能够在不同的需求和约束条件下进行综合性架构设计。 软考系统架构师考试涵盖了系统架构设计的核心概念和基本要素,包括需求分析、架构设计、技术选型、系统集成、性能优化、安全保障等方面的知识。考试内容还会涉及到最佳实践、行业标准和相关法规等信息,以保证考生对系统架构设计的全面掌握。 在准备软考系统架构师考试时,考生应该注重理论知识的学习和实践经验的积累。可以通过参加培训班、阅读相关书籍和技术论文、参与实际项目等方式,深入了解系统架构设计的各个方面,并通过实际操作和实践来巩固所学的知识。 在考试中,考生需要注意准确理解题目要求,清晰地表达自己的设计思路,并通过适当的图表和案例来支持自己的回答。同时,还应该注意考试时间的分配,合理安排答题顺序,确保每个题目都有足够的时间来仔细推敲和回答。 总之,软考系统架构师考试是一项具有挑战性的考试,需要考生全面掌握系统架构设计的理论知识,具备实践经验,并能够在考试中灵活运用所学知识。只有通过系统的准备和充分的实践,才能够顺利通过考试,成为一名合格的系统架构师。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值