`
lzj0470
  • 浏览: 1244749 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

做一个类似csdn这样的网站,需要什么技术?

阅读更多

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情况下,还没有达到性能瓶颈

分享到:
评论
1 楼 tyzqqq 2010-05-18  
zzzzzzzzzzzzzzzzzzzzzzz

相关推荐

    中国十大技术社区

    技术社区就是聚集了IT行业内的技术人,在技术社区可以了解到行业的最新进展,学习最前沿的技术,认识有相同爱好的朋友,在一起学习和交流。

    教学资源共享平台(前台+后台管理,前台参照csdn,后台依然是ext3.0做的)

    资源共享平台类似csdn,通过一方上传然后大家共享下载。今次只用了一个月的时间来完成这个系统,包括前台系统和后台系统,不过之后还继续在完善中,而现在上传的版本还有些许缺陷,仅供大家参考,切不可商用,版权归...

    jquery投票插件可以显示进度类似csdn

    采用jquery和json技术实现的投票效果,php需要支持json,这是根据官网改写的,官网提供的源码有错误!

    电子类各大著名网站

    学电子的通知必看的各大网站,很强大狠给力。揽阔了当前各大著名网站

    最受欢迎50大技术博客

    最受欢迎50大技术博客 最受欢迎50大技术博客 最受欢迎50大技术博客

    基于SSH框架的IT技术学习交流论坛系统设计源码

    它提供了一个类似于CSDN或ITeye的论坛平台,旨在促进技术学习与交流。系统界面设计简洁清爽,操作直观易用,确保了用户体验的友好性。项目包含527个文件,其中JavaScript文件80个,图片资源(包括png和gif)111个,...

    400个DreamWeaver插件

    mxp/打开一个指定大小的窗口,除了标题栏什么都没有。如果做很多弹出窗口的话,这个插件比DW自带的open browser window方便一些 mxp/一些Flash Button,一共7款 mxp/Winamp和Dreamweaver都是软件中的精品,有了这个...

    Android Studio实现一个新闻APP,功能巨多,大作业必备项目

    本次项目实现了一个聚合新闻APP,通过调用第三方API获得新闻数据并显示。具有十几个页面,底部导航栏,数据库,滑动页面等。主要功能就和我们平时使用的今日头条类似,具有头条、社会、国内、国际、娱乐、健康等十几...

    COM EXPRESS详解

    PICMG 定义的计算机模块标准 由几大嵌入式工业计算机厂商共同制定的一种计算机模块标准 类似的标准还有ETX XTX Qseven 随着串行通信技术的发展 一些旧的总线技术慢慢遭到淘汰 因此ETX标准也需要一个升级版本 ...

    Java面试宝典-经典

    18、一个用户表中有一个积分字段,假如数据库中有100多万个用户,若要在每年第一天凌晨将积分清零,你将考虑什么,你将想什么办法解决? 107 19、一个用户具有多个角色,请查询出该表中具有该用户的所有角色的其他...

    私有云产品详细技术方案说明书.doc

    随着“云存储技术”在互联网服务应用的逐步成熟,考虑到最新的“云计算”模式带来的巨大效能提升、大幅节约成本等技术优势,越来越多的企业、政府等用户也开始考虑,在企业内部搭建类似互联网上网盘的私有形态的存储...

    仿美团外卖微信小程序源码实现

    首先,从餐饮方面上讲,比如说你开一家餐馆,在门口放上一个餐厅小程序入口的二维码。当有顾客路过你的门口,觉得你的店铺还不错,门口有个小程序的二维码,于是掏出手机扫一下二维码,马上就可以知道店里,有没有...

    住宅小区物业管理系统毕业设计

    本文件包里面包含毕业设计的完整资料,有参考文献,外文翻译,开题报告,等毕业设计的全部文件。 其中的小区物业管理系统是本人团队的毕业设计,不像某些换汤不换药的谋求积分的...系统式一个网站,采用asp技术,C#等。

    基于Vue实现的多条件筛选功能(类似京东和淘宝功能)

    运用Vue实现的多条件筛选功能(类似京东和淘宝功能),代码实现简单、容易理解

    CSDN知识库:不可错过,微信小程序技术大起底

    小程序是微信推出的一种新的公众号的形态,不需要下载安装即可在微信中使用的应用,小程序、订阅号、服务号、企业号是并行的体系。   微信小程序源码结构   视图层(将逻辑层的数据展现在视图上) 逻辑层(通过...

    东北大学_研究生_期末考试和实验之互联网技术及应用实践

    东北大学研究生课程互联网技术及应用实践实验以及本人根据往年真题概括出的几道类似的题目。

    DS-Java:基于SSH(Struts2+Spring+Hibernate)搭建的论坛系统,属于一个类似于CSDN或者ITeye论坛的IT技术学习交流论坛,界面简单清爽,易于操作

    DS-Java论坛系统,简单来说就是一个论坛,这个系统是本人的处女作。项目的取名是因为当时比较偏爱Java以及正在DreamStation这个团队里面,所以就取名为DS-Java论坛了。 项目用到的相关技术、工具等 开发平台及工具:...

    JAVA面试题最全集

    写一个方法,实现字符串的反转,如:输入abc,输出cba 写一个方法,实现字符串的替换,如:输入bbbwlirbbb,输出bbbhhtccc。 3.数据类型之间的转换 如何将数值型字符转换为数字(Integer,Double) 如何将数字...

    [详细完整版]大数据导论.docx

    这个系列的教程将从技术和应用的角度解读大数据与云计算里的具体内容, 和你一起拔高人生的视野。 大数据是什么? 首先,大数据技术是什么? 简而言之,从大数据中提取大价值的挖掘技术。专业的说,就是根据特定目标...

    采用纯js及DOM技术实现消息对话框弹出

    采用纯js及DOM技术实现消息对话框弹出,类似CSDN弹出的消息对话框,可以作为系统事件响应信息提示,可广泛用于网站登陆或者系统信息发布时用。

Global site tag (gtag.js) - Google Analytics