主页
焦点
娱乐
科技
旅游
教育
生活
房产
人才
时尚
美食
名企
汽车
体育
文旅
人物
健康
影视
家居
互娱
图片
会议
首页
>
焦点
> 开发大型高负载类网站应用的几个要点
大家都在看
▪ 爷青回!QQ农场今日回归,偷菜快乐重启
▪ 算力无界,AI无距!超聚变发布FusionXpark™随身智能体开发平台
▪ 神思汉方茶在第二届国际健康发展大会荣获大奖
▪ 2024 国际健康发展大会在长沙顺利闭幕
▪ 《2024 “寻美黔东南”:新媒体团队走进镇远》
▪ 神思汉方科技助力新媒体与健康教育融合盛宴
▪ 《“寻美黔东南”:2024 剑河采风活动盛大举行》
▪ 《2024 “寻美黔东南”:新媒体总编走进榕江感受 “村超” 魅力》
▪ 秒音之声·仙界传奇 张家界亚洲群星演唱会新闻发布会暨开票仪式盛大举行
▪ 第二届国际健康发展大会在长沙瑞吉酒店盛大启动
▪ 刘长江:国医大师平台——国际健康发展大会联席主席、发起人
▪ 欧莱雅中国“Bonjour!你好!有意思青年”开启青年公益的新廿之程
▪ 尊恩国际王超与法国前总理拉法兰在中法60周年畅谈时尚品牌与红酒产业发展
▪ 助力安全出行开学季,享道出携手与杨浦公安开展交通安全培训活动
▪ 签约总额132.2亿元 江陵2023纺织智造园区招商会今日在深举行
娱乐热点
▪ 国愿酱酒发布会暨全球高端晚宴举行明星王奕心助阵
▪ 米乐百业新闻发布会:重新定义后互联网时代商业生态
▪ 贝壳找房代言人黄轩:跑步是我最喜欢的运动之一
▪ 《中国有星宝》城市海选圆满落幕
▪ 殿堂级场景娱乐现场X光电娱乐之都,下一站,广州!
▪ Bedsonline优化中文网站,大力发展中国市场
▪ 跑进城市副中心 感受首都新动能
▪ 年轻人兴趣社交平台“侃侃猩”发布
▪ 揭秘山寨明星寄生链条:一年出演上千场
▪ 考生迎接冲刺,补水有讲究!
▪ CCF-腾讯犀牛鸟基金项目申请全面启动
▪ 宏碁桌面云全面落地 助力辽省信息化建设
▪ 宏碁桌面云技术落地 东北弯道超车新契机
▪ 由“硬产品”到“软硬结合解决方案”看宏碁如何玩转桌面云
▪ 还没毕业就当上CTO,凭啥?
开发大型高负载类网站应用的几个要点
网上收集 2007/11/23 15:01:16
(128)
看了一些人的所谓大型项目的方法,我感觉都是没有说到点子上,有点难受。
我也说说自己的看法.我个人认为,很难衡量所谓项目是否大型,即便很简单的应用在高负载和高增长情况下都是一个挑战.因此,按照我的想法,姑且说是高负载高并发或者高增长情况下,需要考虑的问题.这些问题,很多是和程序开发无关,而是和整个系统的架构密切相关的.
数据库
没错,首先是数据库,这是大多数应用所面临的首个SPOF。尤其是Web2.0的应用,数据库的响应是首先要解决的。
一般来说MySQL是最常用的,可能最初是一个mysql主机,当数据增加到100万以上,那么,MySQL的效能急剧下降。常用的优化措施是M-S(主-从)方式进行同步复制,将查询和操作和分别在不同的服务器上进行操作。我推荐的是M-M-Slaves方式,2个主Mysql,多个Slaves,需要注意的是,虽然有2个Master,但是同时只有1个是Active,我们可以在一定时候切换。之所以用2个M,是保证M不会又成为系统的SPOF。Slaves可以进一步负载均衡,可以结合LVS,从而将select操作适当的平衡到不同的slaves上。
以上架构可以抗衡到一定量的负载,但是随着用户进一步增加,你的用户表数据超过1千万,这时那个M变成了SPOF。你不能任意扩充Slaves,否则复制同步的开销将直线上升,怎么办?我的方法是表分区,从业务层面上进行分区。最简单的,以用户数据为例。
根据一定的切分方式,比如id,切分到不同的数据库集群去。全局数据库用于meta数据的查询。缺点是每次查询,会增加一次,比如你要查一个用户nightsailer,你首先要到全局数据库群找到nightsailer对应的cluster id,然后再到指定的cluster找到nightsailer的实际数据。
每个cluster可以用m-m方式,或者m-m-slaves方式。这是一个可以扩展的结构,随着负载的增加,你可以简单的增加新的mysql cluster进去。
需要注意的是:
1、禁用全部auto_increment的字段
2、id需要采用通用的算法集中分配
3、要具有比较好的方法来监控mysql主机的负载和服务的运行状态。如果你有30台以上的mysql数据库在跑就明白我的意思了。
4、不要使用持久性链接(不要用pconnect),相反,使用sqlrelay这种第三方的数据库链接池,或者干脆自己做,因为php4中mysql的链接池经常出问题。
缓存
缓存是另一个大问题,我一般用memcached来做缓存集群,一般来说部署10台左右就差不多(10g内存池)。需要注意一点,千万不能用使用swap,最好关闭linux的swap。
负载均衡/加速
可能上面说缓存的时候,有人第一想的是页面静态化,所谓的静态html,我认为这是常识,不属于要点了。页面的静态化随之带来的是静态服务的
负载均衡和加速。我认为Lighttped+Squid是最好的方式了。
LVS <------->lighttped====>squid(s) ====lighttpd
上面是我经常用的。注意,我没有用apache,除非特定的需求,否则我不部署apache,因为我一般用php-fastcgi配合lighttpd,性能比apache+mod_php要强很多。
squid的使用可以解决文件的同步等等问题,但是需要注意,你要很好的监控缓存的命中率,尽可能的提高的90%以上。squid和lighttped也有很多的话题要讨论,这里不赘述。
存储
存储也是一个大问题,一种是小文件的存储,比如图片这类。另一种是大文件的存储,比如搜索引擎的索引,一般单文件都超过2g以上。
小文件的存储最简单的方法是结合lighttpd来进行分布。或者干脆使用Redhat的GFS,优点是应用透明,缺点是费用较高。我是指你购买盘阵的问题。我的项目中,存储量是2-10Tb,我采用了分布式存储。这里要解决文件的复制和冗余。这样每个文件有不同的冗余,这方面可以参考google的gfs的论文。大文件的存储,可以参考nutch的方案,现在已经独立为hadoop子项目。(你可以google it)
其他:
此外,passport等也是考虑的,不过都属于比较简单的了。抛砖引玉而已。
阅读(128)
(责任编辑:城市网)
北京美图
爷青回!QQ农场今日回归,偷菜快乐重启
全球精英齐聚,共绘“产业蓝海·新智康养·药膳出海”新蓝图
BOE(京东方)“焕新2026”年终媒体智享会落地深圳 绘就显示产业生态新蓝图
算力无界,AI无距!超聚变发布FusionXpark™随身智能体开发平台
光良遇劲敌,人民川酒入局千亿光瓶酒市场
共筑健康产业新高地 2024国际健康发展大会在长沙举行
神思汉方茶在第二届国际健康发展大会荣获大奖
2024 国际健康发展大会在长沙顺利闭幕
《2024 “寻美黔东南”:新媒体团队走进镇远》
神思汉方科技助力新媒体与健康教育融合盛宴
《“寻美黔东南”:2024 剑河采风活动盛大举行》
《2024 “寻美黔东南”:新媒体总编走进榕江感受 “村超” 魅力》
相关推荐
▪ 爷青回!QQ农场今日回归,偷菜快乐重启
▪ 算力无界,AI无距!超聚变发布FusionXpark™随身智能体开发平台
▪ 神思汉方茶在第二届国际健康发展大会荣获大奖
▪ 2024 国际健康发展大会在长沙顺利闭幕
▪ 《2024 “寻美黔东南”:新媒体团队走进镇远》
▪ 神思汉方科技助力新媒体与健康教育融合盛宴
▪ 《“寻美黔东南”:2024 剑河采风活动盛大举行》
▪ 《2024 “寻美黔东南”:新媒体总编走进榕江感受 “村超” 魅力》
▪ 秒音之声·仙界传奇 张家界亚洲群星演唱会新闻发布会暨开票仪式盛大举行
▪ 第二届国际健康发展大会在长沙瑞吉酒店盛大启动
▪ 刘长江:国医大师平台——国际健康发展大会联席主席、发起人
▪ 欧莱雅中国“Bonjour!你好!有意思青年”开启青年公益的新廿之程
▪ 尊恩国际王超与法国前总理拉法兰在中法60周年畅谈时尚品牌与红酒产业发展
▪ 助力安全出行开学季,享道出携手与杨浦公安开展交通安全培训活动
▪ 签约总额132.2亿元 江陵2023纺织智造园区招商会今日在深举行
关于我们
-
联系我们
-
网站荣誉
-
广告服务
-
版权声明
-
网站地图
Copyright© 2007-2018 bj1.com.cn
首都热线
版权所有 QQ:165687462
中国·北京
粤ICP备14047004号-20