- 浏览: 378669 次
-
文章分类
最新评论
-
strchi:
这个网站,什么都没有了
做小说搜索网站,这个是不是有可能会侵权的呢? -
从此醉:
楼主倒是给出解决办法啊
Java虚拟机支持的最大内存限制 -
kjmmlzq19851226:
又要增强客户体验,又要降低伪造攻击的概率,╮(╯▽╰)╭,程序 ...
Web安全测试之跨站请求伪造(CSRF)篇(图) -
zhangxinze:
linux下使用Java获取客户端ip地址?大家有何高见,我现 ...
怎样用Java来获取真实的IP地址 -
k_kid9157:
学习 感谢分享:-)
log4j的ConversionPattern参数的格式含义
当互联网吵吵嚷嚷的进入2.0时代,当互联网的技术不再是那么高不可攀,当复制变成家常便饭,互联网热闹起来了
myspace火了,中国冒出更多的myspace
youtube刚刚起来,中国的视频网站就遍地开花
51拔地而起,中国出了无数的SNS
facebook则改变了中国站长的抄袭方式,不再学chianren了,校内火了
..........
当抄袭变成习惯,我想说的是,模仿,站长,你准备好了吗?
如果你打算做垃圾站,或者赚点广告费的网站,请不要点击这篇文章,我从技术角度方面谈谈WEB2.0网站的模仿问题。
当投资和流量都不是问题的时候,我想说的是,您真的一帆风顺吗?
拿SNS网站来说,当匆匆上线的2.0,当一笔笔投资砸进去的时候,当流量上去的时候,您的困惑在什么地方?
我做过多个2.0公司的技术顾问,简单的谈谈2.0公司遇到的问题(涉及隐私,我用A B C D代替),这里就不再赘述大家众所周知的页面静态化,缓存和代码安全等问题了,有点技术的2.0公司的CTO都知道这些东西,我们谈点发展之后的问题
A公司
A公司做的是SNS网站,程序是两个毛头小伙子做的,目标直指51,程序开发是一帆风顺,功能也比51牛多了,推广也是一帆风顺(A公司有自己独到的推广方式。但是当ALEXA到2W的时候问题出来了,每天下午4点左右,网站速度慢的惊人,基本上打不开,公司三台服务器CPU100%,让人郁闷的是公司的网络配置方式,居然是双WEB的集群,而单独一台DB数据库。整个瓶颈在数据库,于是我建议做DB的集群,分析了一下数据结构,MD,典型的WEB程序员的作品,没有一点数据库设计规范,功能实现是可以,如果要扩展,不可能,集群基本上是不可能的,怎么办?不能办,于是,一个月的时间修改程序,数据结构基本上换了一遍 前期砸进去的几十万打了水飘,用户走光了。
结论:WEB2.0前期设计的时候不应该只考虑功能,应该认真考虑一下底层和数据结构了。
B公司
B公司也是做的SNS网站,程序是3个人开发的,CEO是某名牌大学的经济学硕士,有点知己网的味道,又有一些特色出来,说实话,公司的潜力不错,CEO有很强的运作能力,感觉前景不错。系统架构还行,但是---但是系统崩溃了,why?系统没有考虑到用户有个海量的说法,文件也有个海量的说法,用户的相册,图片全部存贮在WEB服务器的一个分区上,每个用户一个目录,而打开性能监视器,磁盘的IO高的惊人,基本上无暇响应。众所周知,文件系统也是一个数据库,单独大文件无所谓,关键是整个是300多个G的零碎文件,大量的读写操作,系统崩溃,数据丢失,文件系统的一个链断了,用户数据全部丢失!!!Raid并不能解决所有问题,磁盘阵列只能保证在硬盘损坏的时候进行恢复,但是这个是文件系统的损坏,raid不能恢复。这是一个非常沉重的问题,系统整整停了一个月来做数据恢复(单独文件很容易,但是海量文件目前还没有一个软件能组织起来软件架构,数据恢复软件一般在建立目录结构索引的时候就已经死掉了,尝试过用16G内存的服务器做恢复,无效)。解决方案:修改程序架构,做分布式文件存贮(程序修改用了8天,但是文件转移却又用去了将近一个月),20万用户损失殆尽 像这种 http://www.bt285.cn bt下载
结论:WEB2.0前期的设计应该有应付海量存贮的考虑,整个涉及了程序架构的修改,前期规划不好的话基本上思路一条。
C公司
结论:WEB2.0前期设计应该有良好的散列考虑,程序应该能有配合的扩充性,符合数据库的扩充
D公司
D公司是一个各个方面做的比较好的公司,做了CDN加速,图片也独立分出了N个服务器,数据库不错的一个,(CTO是个数据库专家),系统崩溃的原因在于WEB,按道理说WEB很容易做集群的,但是发现集群并解决不掉问题,他们的集群只允许做4台的WEB集群,但是4台都当掉了。仔细分析,找到原因,我估计整个也是大部分CTO最容易犯的一个错误,或者说他们根本就想不到的问题,就是WEB上传的问题,上传的时候由于数据传输的原因,线程是保持链接的,300个线程就可以把一个WEB Server当掉了。解决方案:这个最简单,把上传和其他耗能大户分离出独立出来,同时做异步分布式上传。程序改动不是很大,但是之前半个月速度满对用户体验的损失也不可小视。像这种http://www.5a520.cn 小说520网
结论:没有什么结论了,毕竟有海量访问经验的CTO不多,也就是那几个大站的。
总结:不是泼冷水,模仿其实是很容易的,随便找几个WEB程序员就能做到,并且很简单,速度可能还很高效,因为WEB2.0无非就是跟数据库打交道,会操作数据库就会做。但是真正做大并不容易,因为能应付海量访问的程序并不简单,现在的程序员都太自命不凡,其实真正有经验的并不多,不要相信一个月薪5K--10K的程序员能给你多大的惊喜,能应付海量访问的程序员不是那个价格。如果您想做2.0,想做大,有几个个建议:
一.找DBMS的专家设计好数据库,大部分程序员都不知道分区视图,数据散列,数据组的概念
二.设计好程序架构(这个其实不难,有个高人指导就行了),保持良好的扩展性,成本考虑可以找兼职的系统架构设计师做好系统架构,确定将来的发展瓶颈。
三.考虑好文件存贮的问题。文件存贮的技术含量看起来很低,其实是很高的,可以考虑反向代理的方案。文件存贮出问题了,站点基本上就完蛋了,不仅仅是RAID的问题和存贮服务器的问题,不过道理倒是一点就破的
四.中国国情考虑,这个最致命,需要考虑电信和网通的问题,CDN并不能解决所有问题。互动性的东西并CDN并不是很有效。最关键的是,现有的双线机房遇到DDOS攻击基本上都会当掉,原因很简单,双线机房都是私人机房,本身就不会有太高的带宽,随便攻击一下就可以D掉(顺带提一个笑话,我知道一个双线机房的老总总共1G的带宽却买了4G的金盾墙,很简单800M的攻击就可以搞定)。
五.网络延迟的问题,这是分布式系统必须要考虑的,程序要能容忍0到100秒的数据延迟的功能,也就是同步的问题。不要小看这几十秒,问题很大的,如果你的站点有交互式功能,比如即时聊天,你可以想象一下是个什么结果。对于即时聊天的东西,可以用反向代理来解决(成本较高)。但是对于留言和评论的影响不大,但是如果系统为了健壮做了缓存和静态化的时候,这个东西可能就是灾难性的了。静态文件的更新和重写需要异步的方式来做。
六.分散你的程序,如果你没有太多的资金构筑动辄百万的服务器,建议把功能分散开来,比如相册一台服务器,留言一台服务器
七.看好你的程序员,如果没有很好的激励措施的话你的程序员很容易写出敷衍性的代码,而这个可能就是将来的大患,程序架构定下来后要修改可能就要费牛劲了。最好你的CTO能对你100%的衷心,100%的负责。
评论
对于高负载的应对,架构是最重要的,也就是说系统从设计之初就要有充分考虑,故楼主的文章对站主有很大的参考价值。
其实很多中小站主并不是没有考虑过高负载的应对问题,但往往受限于技术能力或创业资源,前者是硬伤,没法回避的,后者却是值得关注的,一个问题:创业之初是否值得为未来的高负载投入资源?理性的做法:“架构设计上优先考虑,技术实现上适可而止”,除非资金、技术力量都很到位,否则不能过早的投入资源应对未来的高负载,这种投入要和你的站点的用户规模相适应,要在合适的时候进行恰当的投入,不能仅考虑技术因素。
我有一问,希望楼主能不吝赐教:
现在主机托管100M独享的那种,对于一般web应用,如果不考虑其他因素,仅考虑带宽能支持多大的访问量?
文中的公司A,B,C,D都是把机器托管在IDC吗?还是有其他的方案?
谢谢
发表评论
-
分布式文件系统MFS(moosefs)实现存储共享(一)
2009-05-02 10:35 2714由于用户数量的不断攀 ... -
Facebook 如何管理150亿张照片
2009-05-02 10:01 1646Facebook 的照片分享很受 ... -
提高网站速度的最佳实践(2)
2008-12-06 22:27 1199今天偶尔在网上看到了这篇文章,http://developer ... -
主题:两年服务器开发的一句话经验集
2008-11-17 20:50 880<script type="text/ja ... -
Twitter的技术给我们的启发
2008-10-17 12:44 2923Twitter的水平扩展的一些 ... -
说说大型高并发高负载网站的系统架构(更新)[Michael]
2008-07-28 17:47 1214另外看Michael更新了他的 ... -
Web站点数据库分布存储浅谈
2008-07-12 21:49 1344【 前言 】网 站在Web 2.0 ... -
session详解(转)
2008-07-05 12:20 1225目录:一、术语session二 ... -
tomcat5性能优化
2008-07-04 14:49 2397tomcat优化设置 1. 如何加大tomcat连接数 在 ... -
HTTP应答状态、概述、含义及其设置
2008-07-02 11:11 1605HTTP应答状态、概述、含 ... -
Linux下面监控系统性能的工具-vmstat
2008-07-02 10:24 2758顾名思义,vmstat是virtual ... -
NFS配置与安装
2008-06-21 17:22 3076NFS配置与安装 安装1 环境描述: * 网络环境: ... -
Java虚拟机支持的最大内存限制
2008-06-17 11:14 19881最近在开发Java的程序。本来我是一直很喜欢Java的内存管理 ... -
测试网站性能的30款免费在线工具
2008-06-14 10:47 2301你是否肯定你的网站完 ... -
Web cache 说明[翻译](转)
2008-06-02 23:00 1211原文(英文)地址: h ... -
应用OSCache提升J2EE系统运行性能
2008-05-29 21:35 995文章摘要 Cache是一种用于提高系统响应速度、改善系统运行性 ... -
提高网页的效率14条建议
2008-05-29 21:00 986Make Fewer HTTP Requests Use a ... -
浏览量比较大的网站一些使用方法
2008-05-29 20:55 1375【IT168 技术文档】 当然,提问前先将个人的一些理解分享。 ...
相关推荐
E桶金行业搜索引擎系统(包含多线程客户端蜘蛛系统) V1.6 版发布! E桶金行业搜索引擎 特别适用于超大、中型信息门户、行业门户、电子商务等网站使用。 它是一款真正意义上的搜索引擎:具有自己的蜘蛛、分词、索引...
Pligg是最灵活的类似Digg的Web2.0 CMS系统!网页设计师可以使用Pligg做他(她)想做的任何事情。稍微懂一些PHP和Mysql的知识即可安装Pligg。如果需要修改和管理Pligg,可能有点难度。对于精通Web开发语言的朋友,Pligg...
基于当今全球最为流行的php mysql和WEB2.0应用,可整合discuz! phpwind(业界独家,双向同步) 等主流论坛应用 3. 功能强大 拥有分类信息系统全部模块,可通过开启插件应用架设地方门户系统,支持手机浏览发布信息...
基于当今全球最为流行的php mysql和WEB2.0应用,可整合discuz! phpwind(业界独家,双向同步) 等主流论坛应用 3. 功能强大 拥有分类信息系统全部模块,可通过开启插件应用架设地方门户系统,支持手机浏览发布信息...
基于当今全球最为流行的php mysql和WEB2.0应用,可整合discuz! phpwind(业界独家,双向同步) 等主流论坛应用 3. 功能强大 拥有分类信息系统全部模块,可通过开启插件应用架设地方门户系统,支持手机浏览发布信息...
分页是Web应用程序中最常用到的功能之一,在ASP.NET中,虽然自带了一个可以分页的DataGrid(asp.net 1.1)和GridView(asp.net 2.0)控件,但其分页功能并不尽如人意,如可定制性差、无法通过Url实现分页功能等,...
此模块代码完全开放,无任何****插件程序,请站长放心使用。本版本适用服务器平台:Windows.Net+Access(其他版本适用平台请查询官网)更新详情:1.更新了安装时的权限判断程序,确保用户可以更简单易懂的理解模块的...
5年开发经验的优秀团队,在掌握了丰富的WEB开发经验和CMS产品开发经验的同时,勇于创新追求完美的设计理念,为全球多达10万网站提供助力,并被更多的政府机构、教育机构、事业单位、商业企业、个人站长所认可。...