夜鹰教程网-程序员的加油站
 当前位置:文章中心 >> 成都网站建设_成都网页设计
深入分析架构差异对Web性能高低的影响
夜鹰教程网 来源:www.yyjcw.com 日期:2016-10-17 23:19:20
一般情况下,架构分两种来讨论的,一种是开发架构,一种是部署架构 

部署架构,就是开发完的程序在实际运行环境下,通过负载均衡,DNS轮询,SquID等等来减轻单台服务器负载,达到性能优化的目的

这里大家估计更想了解的是开发上的架构

我对这个的观点是,所有的架构都是死的,而Web高性能开发优化策略是活的,我在开发中,所有的东西都不是一定要按照什么固定的模式,去死开发,更多的是针对需要优化的信息进行针对处理,下面说说我的优化策略

1、数据库优化,这个是所有的优化策略中中重要的,可以说数据库设计的好坏,直接影响了一个系统的承受力。普通的数据库细节优化,网上已经有大笔文章了,没什么好说的,想了解的自己去找。而我要说的就是在数据库设计中的一个思路,分库、分表、缓存表。

1)分库指的是在设计中,要考虑到后期数据量大的情况下,你的数据库能够随着应用随时拆分,这个拆分并不是只是针对功能模块对应的数据拆分。举个例子,就 用这个CSDN论坛吧,比如里面有很多类,C#版,JAVA版,系统设计版等等,拆分的目的是可以把任何一个版的数据拆分到单独的一个数据库中去。

2)分表相对的就好理解了,就是说同类型的数据,你可以为了性能优化,进行拆分到多个表中去,拆分规则可以有多种,按照类型、按照时间、按照姓名等等。同样以这个CSDN论坛来说,我要设计的话,我会按照里面的大版面进行数据库拆分,而按照小版,进行表拆分。

3)而对于缓存表,网上我还很少看到有人来说这个东西,这个的目的就是针对一个大的数据表中,一般中有死数据库和活动数据,比如用户表,里面有很多基本不 来的用户,那么针对这样的情况,当表数据上了千万的时候,我就会采用缓存表的模式来进行了,就是在实际表和用户之间在搭建一个临时表,访问用户数据时,首 先访问临时表,如果不存在,则进入实际表中获取,然后放入缓存表中,同时会通过后台线程,定时将缓存表数据同步到实际数据库中,同步时间可以针对系统要求 来进行。

如果理解了上面的东西,那么在数据承载上,可以上升一个很大的层次。。。。。

2、程序优化。这个对我来说相对的就不是那么的看中了,程序的优化,我更多的认为是个技巧,而不是架构了,包括现在经常见到的那些各种设计模式,另外这里提下,很多设计模式,他的出发点并不是Web高性能开发,而是考虑的系统扩展性,所以在单个技术细节上,很多人也发现了,并不如直接的写代码来的快,但是就是推荐 那样,是因为采用了那些模式的程序,扩展性比你的强,那么一旦系统要求变动,或者是要求进行拆分的时候要比你方便的多,在分担到多个服务器上时,性能相对 的就起到了优化也。废话了通,继续说我对程序部分经常采用的方式吧

1) 首推静态化,这个的优化效果不用多说,直接减轻了服务器负担,不过如果用上了Squid,那么有第三放来做静态,也可以达到同样的效果

2) 合适的数据缓存,缓存很多人都用到了,但是在使用前,是否认真思考过为这个这个要进行Cache,Cache他的标准是什么?我说下我的标准:小数据量、 大访问量、更新尽量少的数据,全部可以进行缓存。另外我提到的缓存,并不只是说。NET本身提供的Cache,我说的缓存还包括了使用Static来进行 的数据

3) 活用线程,很多人的观念中感觉线程好象在B/S中是用不到的,或者是没有必要。其实这个观念完全错,在特定情况下使用线程,可以提高的局部性能不是一点两点

4) 功能模块拆分,这个一般人基本都在做,我要补充的是,不只是在单个项目中进行功能模块的拆分,而是为了进行分步式开发而进行拆分

在其它的基本都是细节优化了,这个没有太多兴趣写了,网上资料应该不少,可以自己搜索查阅

上面的这几部分如果能在开发中,灵活运用上,可以说,你实现Web高性能开发,绝对不是难事。

我曾经开发的过的站点中,也有过社区,一个WEB 服务器,一个DB服务器,主题帖千万,回复帖有6000W左右吧,其它数据不算,运行过程中没出过任何问题,日访问在100W PV情况下,还没有达到性能瓶颈

复制链接 网友评论 收藏本文 关闭此页
上一条: ASP无限级分类实例教程  下一条: 技巧篇:J2EE层次设计架构实例
夜鹰教程网成立于2008年,目前已经运营了将近 13 年,发布了大量关于 html5/css3/C#/asp.net/java/python/nodejs/mongodb/sql server/android/javascript/mysql/mvc/easyui/vue/echarts原创教程。 我们一直都在坚持的是:认证负责、一丝不苟、以工匠的精神来打磨每一套教程,让读者感受到作者的用心。我们默默投入的时间,确保每一套教程都是一件作品,而不是呆板的文字和视频! 目前我们推出在线辅导班试运营,模式为一对一辅导,教学工具为QQ。我们的辅导学科包括 java 、android原生开发、webapp开发、商城开发、C#和asp.net开发,winform和物联网开发、web前端开发,但不仅限于此。 普通班针对的是国内学员,例如想打好基础的大学生、想转行的有志青年、想深入学习的程序员、想开发软件的初学者或者业余爱好者等。 就业办针对即将毕业上岗的大四学生,或者打算转行的初级开发工程师。 留学生班针对的是在欧美、加拿大、澳洲、日本、韩国、新加坡等地留学的中国学子,目的是让大家熟练地掌握编程技能,按时完成老师布置的作业,并能顺利地通过考试。 详细咨询QQ:1416759661   夜鹰教程网  基于角色的权限管理系统(c-s/b-s)。
  夜鹰教程网  基于nodejs的聊天室开发视频教程
  夜鹰教程网  Git分布式版本管理视频教程
  夜鹰教程网  MVC+EasyUI视频教程
  夜鹰教程网  在线考试系统视频教程
  夜鹰教程网  MongoDB视频教程。
  夜鹰教程网 Canvas视频教程
  夜鹰教程网 报表开发视频教程
  热点推荐
Dreamweaver CS4 SN以及注册机、激…
成都网站建设:私人网站建设的好处…
向上下左右不间断无缝滚动图片的效…
网站建设需要准备哪些资料?
ASP无限级分类实例教程
使用IE8常见问题问答
网页制作有关知识
如何加入网页代码的基本知识
QQ空间开心农场升级最快的方法
不让你的QQ好友删除你
HTML框架(Frames)
什么域名?如何注册域名?如何解析…
如何做好需求分析:需求管理是项目…
QQ远程协助后黑屏或花屏故障解决办…
专业化操作 Word 2007文档审阅技巧…
  最近更新
如何使用百度地图API一些简单的功…
C#正则表达式提取网址、标题、图片…
网站高并发解决思路(转)
安装好Discuz!NT论坛后首页是一片…
有哪些细节设计给你带来好的用户体…
抄袭来的东西进行拼装之后,属于我…
成都最便宜网站建设 QQ:14167596…
成都网站建设:私人网站建设的好处…
夜鹰教程网网站建设常见问题集锦
浅谈网站建设的十二大误区
网站建设需要准备哪些资料?
怎样才能写好一篇软文呢:越低俗越…
什么域名?如何注册域名?如何解析…
站长如何将网站的访客变为顾客?
夜鹰教程网打造成都私人网站建设的…

关于我们 | 网站建设 | 技术辅导 | 常见问题 | 联系我们 | 友情链接

夜鹰教程网 版权所有 www.yyjcw.com All rights reserved 备案号:蜀ICP备08011740号3