`
lxy2330
  • 浏览: 468639 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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服务器盖得严严实实为妙,稍有疏漏的话恢复服务的时间就长了。

--------------------------------------------------------------------------------
分享到:
评论

相关推荐

    梦凌制作的仿CSDN.NET论坛(XML+ASP.NET).

    同时,通过模仿CSDN.NET论坛,开发者可以掌握创建论坛类网站的基本架构和设计原则,包括用户权限管理、内容发布和检索机制等。对于想要提升.NET开发技能,尤其是对XML和ASP.NET结合应用感兴趣的人员来说,这是一个...

    多层架构的大型.NET OA 系统

    【标题】:“多层架构的大型.NET OA 系统”是指采用Microsoft的.NET框架,以C#编程语言构建的企业级办公自动化(Office Automation,OA)系统。这种系统通常设计为多层架构,以提高可维护性、扩展性和复用性。 ...

    软件架构设计系列课程(3):如何成为一个.NET企业架构师

    这个资源包包含丰富的学习材料,包括PPT演示文稿、视频教程、文档以及实例,旨在帮助学员全面理解和掌握.NET架构设计的核心概念。 首先,软件架构设计是构建复杂系统的关键步骤,它定义了系统的整体结构,包括组件...

    asp.net论坛系统

    ASP.NET提供了一套完整的MVC(Model-View-Controller)架构,使得开发者能够更好地分离业务逻辑、数据模型和用户界面,从而提高代码的可读性和可维护性。 1. **用户注册与登录**:系统需要一个安全的用户注册模块,...

    https://bbs.csdn.net/topics/396454535 涉及到的一些文件

    在给定的CSDN论坛话题“涉及到的一些文件”中,我们可以推测这可能是一个关于ASP.NET技术的讨论。虽然没有具体的文件内容,但从标题和标签,我们可以深入探讨ASP.NET的相关知识点。 ASP.NET是由微软开发的一个用于...

    ASP.Net + access图书管理系统

    系统名称:双鱼林asp.net图书信息管理系统学习版 系统功能: (1)系统分两种身份:管理员和读者,读者可以分为不同的类型,每种类型借书天数和续借天数都不一样!...http://download.csdn.net/detail/cleopard/8340303

    开源网站基础源码 C# .net mvc架构,七天轻松入门

    开源网站基础源码 C# .net mvc架构源码,配合博客介绍实现内网访问和外网访问。开源C# .net mvc 开发博客地址: https://blog.csdn.net/ajassi2000/article/details/132823595

    实验指导书 实验报告:https://download.csdn.net/download/m0_71999066/862395

    实验主要围绕四个核心部分进行,分别是添加用户、删除用户、查找和修改用户,以及理解基于MVC模式的程序架构。 一、实验目标: 1. 理解MVC模式的基本概念和工作流程。 2. 掌握使用JSP、Servlet和JavaBean进行数据库...

    教学资源管理系统(asp.net)

    【教学资源管理系统(asp.net)】是一个基于ASP.NET技术开发的Web应用程序,旨在提供一个集中的平台,方便教师、学生以及管理员对教学资源...通过深入研究和改进,这个系统可以变得更加成熟,满足更多教学场景的需求。

    希塞2019年系统架构设计师培训讲义.pdf

    希塞2019年系统架构设计师培训讲义是一份专注于系统架构师考试的培训资料,内容覆盖了系统架构设计的多个方面,包括企业信息化战略与实施、软件工程、软件架构设计、系统安全分析与设计、系统可靠性分析与设计、项目...

    系统详细概要说明书

    6 3.1 详细需求分析 6 3.2 详细系统运行环境及限制条件分析接口需求分析 6 4 总体方案确认 7 4.1 系统总体结构确认 7 4.2 系统详细界面划分 7 4.2.1 应用系统与支撑系统的详细界面划分 7 4.2.2 系统内部详细界面划分...

    BBS在线论坛系统asp.net

    开发这样的BBS系统,开发者需要掌握ASP.NET MVC架构,了解如何创建控制器来处理HTTP请求,定义模型来封装业务逻辑,以及使用视图来展示数据。此外,SQL Server 2000的使用意味着需要熟悉SQL查询语言,以及如何设计...

    ASP.NET第一团购网源码(自动部署,有说明)- ASP.NET 团购网源码

    第一团购系统是基于Web应用的B/S架构的团购网站,本程序采用目前软件开发IT业界较为流行的ASP.NET和SQLSERVER2000数据库开发技术架构。从功能层面来看,前台首页每天显示一个服务或插产品的限时限最低成团人数的团购...

    ASP.NET网络购物加后台加三层架构(Web)

    通过研究这些源码,开发者可以了解如何在ASP.NET环境中实现三层架构的完整流程。 总结来说,这个ASP.NET网络购物系统展示了如何利用三层架构来组织复杂的应用程序,涵盖了用户交互、业务逻辑处理和数据管理等多个...

    asp.net数据库系统开发

    5. **ASP.NET MVC**:模型-视图-控制器架构模式,是一种设计模式,用于分离应用程序的业务逻辑、用户界面和数据访问。在ASP.NET MVC中,Controller处理HTTP请求,Model代表业务数据,View则负责展示数据。 6. **ASP...

    Android的系统架构

    Android系统架构是一个多层次的复杂体系,它以Linux内核为基础,为开发者提供了丰富的层次和工具,使得Android成为了极具灵活性和开放性的操作系统。Android系统主要分为四个核心层次: 1. **应用程序层**:这一层...

    delphi三层框架+delphi源码MES生产管理系统

    最新版本地址:https://blog.csdn.net/dgthm/article/details/142102006?spm=1001.2014.3001.5501 一,框架简介 1,本套源码主要是用来开发企业应用系统如:erp ,mes,hrms,进销存等制造业内部应用系统;跟网上 ...

    ASP.NET MVC 4 插件化架构简单实现

    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的电商系统的设计与实现

    内容概要:本电商系统主要使用ASP.NET技术+BootStrap前端框架+SQLServer数据库,通过对该系统的设计,简化代码实现过程,保留核心功能,可以在实践过程中掌握ASP.NET技术的部分使用方法,如对三层架构开发模式的熟悉...

    简单的BBS系统,可以做期末项目

    【标题】中的“简单的BBS系统,可以做期末项目”表明这是一个适合学生或者初学者用于实践的基于ASP.NET技术构建的简易版在线讨论论坛。它主要用于学习和展示基础的论坛功能,可以作为期末项目的实际操作案例。 ...

Global site tag (gtag.js) - Google Analytics