CSDN曾经是伪静态,现在长时间不来看了,所以并不知道是否已经做过改进,这里简单的针对。NET下的发容量来说下吧,其实这个不是只针对。NET,毕竟架构不分语言
一般情况下,架构分两种来讨论的,一种是开发架构,一种是部署架构
部署架构,就是开发完的程序在实际运行环境下,通过负载均衡,DNS轮询,SquID等等来减轻单台服务器负载,达到性能优化的目的
这里大家估计更想了解的是开发上的架构
我对这个的观点是,所有的架构都是死的,而性能优化策略是活的,我在开发中,所有的东西都不是一定要按照什么固定的模式,去死开发,更多的是针对需要优化的信息进行针对处理,下面说说我的优化策略
1、数据库优化,这个是所有的优化策略中中重要的,可以说数据库设计的好坏,直接影响了一个系统的承受力。普通的数据库细节优化,网上已经有大笔文章了,没什么好说的,想了解的自己去找。而我要说的就是在数据库设计中的一个思路,分库、分表、缓存表。
1)分库指的是在设计中,要考虑到后期数据量大的情况下,你的数据库能够随着应用随时拆分,这个拆分并不是只是针对功能模块对应的数据拆分。举个例子,就用这个CSDN论坛吧,比如里面有很多类,C#版,JAVA版,系统设计版等等,拆分的目的是可以把任何一个版的数据拆分到单独的一个数据库中去。
2)分表相对的就好理解了,就是说同类型的数据,你可以为了性能优化,进行拆分到多个表中去,拆分规则可以有多种,按照类型、按照时间、按照姓名等等。同样以这个CSDN论坛来说,我要设计的话,我会按照里面的大版面进行数据库拆分,而按照小版,进行表拆分。
3)而对于缓存表,网上我还很少看到有人来说这个东西,这个的目的就是针对一个大的数据表中,一般中有死数据库和活动数据,比如用户表,里面有很多基本不来的用户,那么针对这样的情况,当表数据上了千万的时候,我就会采用缓存表的模式来进行了,就是在实际表和用户之间在搭建一个临时表,访问用户数据时,首先访问临时表,如果不存在,则进入实际表中获取,然后放入缓存表中,同时会通过后台线程,定时将缓存表数据同步到实际数据库中,同步时间可以针对系统要求来进行。
如果理解了上面的东西,那么在数据承载上,可以上升一个很大的层次。。。。。
2、程序优化。这个对我来说相对的就不是那么的看中了,程序的优化,我更多的认为是个技巧,而不是架构了,包括现在经常见到的那些各种设计模式,另外这里提下,很多设计模式,他的出发点并不是性能优化,而是考虑的系统扩展性,所以在单个技术细节上,很多人也发现了,并不如直接的写代码来的快,但是就是推荐那样,是因为采用了那些模式的程序,扩展性比你的强,那么一旦系统要求变动,或者是要求进行拆分的时候要比你方便的多,在分担到多个服务器上时,性能相对的就起到了优化也。废话了通,继续说我对程序部分经常采用的方式吧
1) 首推静态化,这个的优化效果不用多说,直接减轻了服务器负担,不过如果用上了Squid,那么有第三放来做静态,也可以达到同样的效果
2) 合适的数据缓存,缓存很多人都用到了,但是在使用前,是否认真思考过为这个这个要进行Cache,Cache他的标准是什么?我说下我的标准:小数据量、大访问量、更新尽量少的数据,全部可以进行缓存。另外我提到的缓存,并不只是说。NET本身提供的Cache,我说的缓存还包括了使用Static来进行的数据
3) 活用线程,很多人的观念中感觉线程好象在B/S中是用不到的,或者是没有必要。其实这个观念完全错,在特定情况下使用线程,可以提高的局部性能不是一点两点
4) 功能模块拆分,这个一般人基本都在做,我要补充的是,不只是在单个项目中进行功能模块的拆分,而是为了进行分步式开发而进行拆分
在其它的基本都是细节优化了,这个没有太多兴趣写了,网上资料应该不少,可以自己搜索查阅
上面的这几部分如果能在开发中,灵活运用上,可以说,你开发个CSDN这样规模的站点,绝对不是难事。
我曾经开发的过的站点中,也有过社区,一个WEB 服务器,一个DB服务器,主题帖千万,回复帖有6000W左右吧,其它数据不算,运行过程中没出过任何问题,日访问在100W PV情况下,还没有达到性能瓶颈
分享到:
相关推荐
这个项目具有良好的练习价值,可以帮助开发者加深对Web开发技术的理解,尤其是对于想要从事CSDN类似平台开发的人员来说,它是一个理想的起点。 在源代码中,我们可以期待找到以下几个关键的知识点: 1. **前端框架...
CSDN Reader是一款专为开发者设计的网络聚合应用,它利用C#编程语言实现了对CSDN技术论坛的帖子抓取和阅读功能。C#,全称C Sharp,是微软公司推出的一种面向对象的、运行于.NET Framework之上的高级程序设计语言。其...
`Python-pyCSDNDailySpider` 是一个针对CSDN网站的Web爬虫程序,主要用于自动化获取CSDN日报最近20篇文章的链接。这个工具是用Python编程语言编写的,充分体现了Python在Web爬虫领域的强大功能和便捷性。在深入讲解...
ClipboardJS是一个轻量级的JavaScript库,它使得实现类似CSDN的代码复制功能变得非常简单。本文将详细介绍如何使用ClipboardJS来创建一个仿CSDN的代码复制功能。 首先,了解ClipboardJS的基本用法是至关重要的。...
技术社区就是聚集了IT行业内的技术人,在技术社区可以了解到行业的最新进展,学习最前沿的技术,认识有相同爱好的朋友,在一起学习和交流。
这里的“参考代码”可能是用于教学或学习目的,帮助用户理解如何构建一个类似CSDN博客首页的网页结构。 【描述】:“这是小编参考部分CSDN博客首页网页代码,自己实现整个效果的代码的压缩包,读者有需要的,可以...
这个源码具有很高的学习价值,可以让开发者深入了解如何构建类似CSDN的移动应用。 【描述】"android 高仿csdn客户端源码 非常有价值。值得大家学习借鉴。"这部分描述强调了该源码的实用性和教育意义。对于Android...
总结,构建一个类似510游戏论坛的网站,需要掌握HTML作为基础,结合CSS和JavaScript实现交互和视觉效果,同时理解服务器端编程和数据库管理,考虑SEO优化和响应式设计。通过不断学习和实践,你可以创造出属于自己的...
【标题】:“csdn插件,可以在浏览器首页显示” 该标题揭示了我们讨论的...通过深入学习这些知识点,开发者不仅可以创建类似csdn插件的应用,还能提升在Web开发领域的专业技能,为用户提供更高效、个性化的浏览体验。
CSDN论坛作为一个面向程序员和技术爱好者的社区,提供了丰富的技术讨论、资源分享以及问题解答等功能。 【描述】"VS2003(C#)开发"这部分意味着该源码使用的是微软的集成开发环境Visual Studio 2003,这是一个历史...
在IT行业中,CSDN(China Software Developer Network)是一个知名的技术交流平台,为开发者们提供了大量的技术资源和学习资料。为了鼓励用户积极参与社区建设,CSDN实施了一套积分系统,用户可以通过各种方式获取...
资源共享平台类似csdn,通过一方上传然后大家共享下载。今次只用了一个月的时间来完成这个系统,包括前台系统和后台系统,不过之后还继续在完善中,而现在上传的版本还有些许缺陷,仅供大家参考,切不可商用,版权归...
在本文中,我们将深入探讨如何使用clipboard.js库来创建一个类似CSDN网站的代码复制功能。clipboard.js是一个轻量级、易于使用的JavaScript库,它允许用户通过简单的API调用实现复制文本到剪贴板的功能。这个功能在...
暂时支持“csdn”和“博客园”,意味着这个搜索功能目前仅覆盖这两个博客平台,博客园是另一个受欢迎的中文技术博客平台,与CSDN类似,聚集了大量的IT专业人士。 “搜索”在IT领域是一项基础且重要的功能,特别是在...
本项目“模仿CSDN通过点击来选择标签”是利用纯JavaScript技术来构建一个类似CSDN网站的标签选择功能。CSDN(China Software Developer Network)是中国著名的程序员社区,其标签系统允许用户通过点击来筛选和分类...
CSDN是一个知名的中文IT技术社区,用户可以在上面交流技术、分享代码和解决问题。 【描述】中的信息表明,该源码的作者认为它具有一定的价值,至少等同于2个积分——这是CSDN社区中用于评价和激励用户参与的一种...
本项目旨在模仿CSDN(China Software Developer Network)网站的侧边栏设计,提供一个类似的用户体验。CSDN作为国内知名的IT技术社区,其侧边栏设计简洁且实用,对于学习和实践前端开发的开发者来说,具有很高的参考...
【标题】:“JS制作的一个类似google应用的小游戏” 在标题中提到的“JS制作的一个类似google应用的小游戏”,我们可以理解为这是一个使用JavaScript编程语言开发的、模仿谷歌应用程序风格的互动娱乐项目。...
本文件包包含的就是CSDN论坛不同等级的图标Logo,适用于那些正在开发类似论坛网站或者需要定制用户等级系统的项目。 首先,我们要理解论坛等级系统的基本概念。论坛等级系统是通过一套量化规则来衡量用户在论坛中的...
jQuery是一个快速、简洁的JavaScript库,它简化了HTML文档遍历、事件处理、动画设计和Ajax交互。在本投票插件中,jQuery起到了核心作用,负责页面元素的选取、操作以及与服务器的异步通信。 **Ajax技术** Ajax...