手机之家网站架构–对话高春辉

news/2024/5/11 16:03:40/文章来源:https://blog.csdn.net/Fenng/article/details/81362280

这次去北京参加 CSDN SD 2.0 ,没发现高春辉的身影,原来是忙着做手机之家的架构升级呢。

从老高的近期工作总结中看到:

目前的技术状况是基于自行设计的 PHP 框架,跑在 PHP 5.2 + MySQL 5.1 下,PHP 使用 Fastcgi 模式,WebServer 选择了 Nginx。搜索功能基于 Lucene 开发。缓存代理使用 Varnish。

对老高进行了一次非正式采访,聊了不少内容,整理了一下和大家分享。(谁是高春辉? 这个不要介绍了吧,请 Google! )

1) 历史情况

Fenng: 原来大约是用什么? 框架用的什么?
高春辉: 你说老系统?Apache 1.3 , DB 是 MySQL 4.0。新框架是团队自己写的,定制了一些东西吧,主要强调的是性能和方便、简单。另外把针对 YSlow 的优化也做进去了。
Fenng: 单说现在用的框架,大约投入了多少个人/天 ?
高春辉: 从全年开始考虑写,一直不断的写 — 具体时间不好说。反正是不少了 :)
Fenng: 看了你 Blog 中的描述,有个小疑惑:没使用面向 DB 的 Cache 层?
高春辉: 我文中说的 Data accessor 就算是了。目前是拿 PHP 做的,Client+Server 集成在一起。后面第二期准备拿 Java 来写 Server 端。

2) 遭遇 PHP Bug

Fenng: 你提到的 502 错误不会是 PHP Fastcgi 内存爆了的原因吧?
高春辉: 不是,是 PHPAPC Bug 的问题。换新版就好了,你可以看 PHP 5.2.7 的 Buglist。里面列了一个在 Fastcgi 下父进程不能执行 shutdown module 方法的问题。主要是这个原因。APC 也有问题,它的Lock在大并发下非常容易挂掉。换上还没发布的测试版就好了。现在挺稳定的。一台机器跑了700万次请求了。
Fenng: 你遇到的是这个问题吧?
Bug 45423
高春辉: Yes Here is the APC bug link : http://pecl.php.net/bugs/bug.php?id=5280 还附带这个问题。当时发现原因之后,非常郁闷,呵呵。
Fenng: 现在用 5.2.8 了?
高春辉: 嗯。5.2.7/5.2.8 反正没啥区别,就修正了一个bug。

3) DB 压力

Fenng: “原有的两台数据库平均总和超过 2000QPS 的查询次数,目前仅有 150+150+250= 550QPS 左右了” 这个 150+150+250 怎么来得? 三台?
高春辉: 现在变成三台机器了 :)
Fenng: 哈
高春辉: 是原来的 1/4 吧 。
Fenng: 你 Blog 中提到 “由于新系统未经大规模流量实际验证,即使再有信心”, 前面有没有做过压力测试?
高春辉: 做过,但是那个问题不是马上就暴露的。而是要运行一段时间才会出。所以我强调的是实际验证。

4) 过程挑战

Fenng: 问个比较俗 的事儿,最近一段时间给你压力最大的事儿是啥? 招聘?项目发布?
高春辉: 人!
Fenng: 人员协调?还是人力招聘?
高春辉: 人永远是问题,好的人不够用, 差一点的人不想用,呵呵。
Fenng: 国内 PHP 好手还是太少吧?
高春辉: 嗯。太多人缺乏对大规模的研究和实践了。而且这次有些思路的转变是对 Java 的引入。之前是考虑 99% PHP 实现。现在考虑 PHP 只做前端。JAVA 做服务器后端。 这样混合编程才算是比较发挥各自的优势。
Fenng: 你们有很多事务的东西?
高春辉: 不是事务多,而是 PHP 本身就不适合做服务器端的内容。包括性能也很慢。比如开始发给你的链接(Fenng 注:之前发给我一个 Session 信息统计的地址),那个 Session Server 就是拿 Java 做的。之前 PHP 的版本,一次请求要两位数(ms)以上,现在一次只要1.5ms,差距很大。

5) 再说网站架构

Fenng:提供给我一份网站架构拓扑图吧 ?
高春辉:这是实际的,包括 IP 了,供参考吧:

imobile_web_arch.png

Fenng: 你们网站规模都这么大了!
高春辉: (笑)

Fenng: 考虑到安全问题,我只把缩略图放到网站上吧。估计没人能看清楚 :)
高春辉: 好。我们目前还是做了一些感觉比较不错的小东西的。比如 Data accessor、Session server、YUI compress server 等等吧。
Fenng: YUI compress server 应该是借鉴了 Yahoo YUI, 然后针对静态文件进行压缩的吧?
高春辉: 就是用 YUI Compressor 做的,只是做成了一个 Daemon 服务,而不是命令行的方式来处理。
Fenng: Data accessor 或者其他组件是否准备开源?
高春辉: 关键是只有到规模才需要它。恐怕大部分网站还是觉得麻烦得多吧。
Fenng: 统计分析和监控也是自己写程序?
高春辉: 那倒还没来得及下大功夫,只是做了一些简单的脚本。

6) 图片处理问题

Fenng: 提一个小建议:我发现主题频道这里的图片仍然有拉伸,我个人觉得拉伸是网站必须要慎重对待的问题,用户体验非常不好。
高春辉: 应该是 Imagemagick 使用的问题。 我还在继续修正,不过相信不是大问题。
Fenng: 这么说图片处理用了 Imagemagick ?
高春辉: 嗯。有图形处理后端 Server。

高春辉: 你可以看看手机之家论坛(http://bbs.imobile.com.cn/)的页面源代码…
Fenng: 现在(网站)的速度可真不是一般的快…YSlow 上的表现惊人, 差不多是国内网站我看到的最高分了。
高春辉: 其实全都都是动态请求,包括你看到的任何一个图片/JavaScript/CSS
Fenng: 你们的图片都是如何处理的?我看到似乎是动态拿过来?在DB里?然后Cache到缓存里么?
高春辉: 全部放到数据库里。作为备份。你在前台看到的都是动态处理的,通过 ID 进行关联。前面有两级缓存。数据库的内容相当于备份。这么做的我认为的好处是不用备份上百万个小文件了。而只是备份几百个大文件就行了。速度会提高非常多;而且那种静态损坏的几率就没有了,因为数据库本身会做数据的校验,我们也都保留的验证数据。

Fenng: 这是个反潮流的做法啊,我的猜测是每天数据量变化不大?
高春辉: 目前一天顶多也就是几百兆的增加,应该是可以承受的。而且即使量大也没关系,我可以具体到一个表拆到一个机器上跑。
Fenng: 可这样的话 EXIF 信息就不用了?
高春辉: 所有的信息都可以有一个 Metainfo 表进行保存。而且可以从新生成,假设你的文件信息解析程序有更新的话。
Fenng: 这是我这几年来看到的第一例。不过合适就好。
高春辉: Metainfo表,当然也可以由各应用自己解析自己保存。目前 FileStorage 已经保存了 1.1TB 的文件数据了。当前拆成了 256 个小表,每个表4G左右大小。
Fenng: 文件层用什么文件系统?XFS?
高春辉: 数据库都是 CentOS 5.2 64 bit 的系统。文件系统用 Ext3。其实没你想像的那么大的 I/O 压力,只要两级缓存有了。根本到不了数据库这里。而且前端的两级缓存都是可以多台机器一起跑冗余的。
只要配置就行了。以后备份和故障恢复也很简单。
Fenng: 这一点很有趣。 突破传统思维 :)
高春辉: 也是基于之前的教训而琢磨的方法,呵。

7) 对待 NFS 的态度

Fenng: 这次架构升级还有什么补充一下?
高春辉: 刚才还忘了说,我们这次以后坚决拒绝 NFS …
Fenng: 为何?
高春辉: 主要是太容易单点了。 IO对一个机器压力大。这本来就不是个分布式的解决方法。

最后帮老高做个广告,他那边还在招人,需要 PHP/Java 方面的好手,如果有兴趣请访问他的 Blog 并发邮件给他:gaochunhui@gmail.com 。

EOF

Google+

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_834199.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

跨屏网  ,网站适配手机案例,适配前后对比图

跨屏网 ,网站适配手机案例,适配前后对比图 网站引用一句话JS代码适配 适配前 适配后 跨屏网自主开发一键适配跨屏平台,致力于为中小企业提供平价的手机适配服务。跨屏网为天悦网提供移动适配服务,网站适配后完美兼容手机端&#…

跨屏前后,网站添加一行代码,快速适配手机(非跳转)

跨屏前后,网站添加一行代码,快速适配手机,真实效果截图, 采用跨屏平台自主开发的解决方案。 主要的优势 1,pc手机内容及时同步 2,相同的域名访问 3,无需提交百度适配 4,利于seo…

面向用户的网站性能优化

在互联网这个行业,”以用户为中心的设计“已经达成共识,但很少听到有人说”以用户为中心进行性能优化”之类的话,很多时候,网站性能优化是面向服务器来进行,或许,应该扭转一点思维,改到考虑如何…

跨屏建站系统2021.2.17发布更新

跨屏网打造“无印良品”版建站系统,在传统建站系统都习惯性的保留建站平台的信息(版权),以至于形成了一个固有的现象,当一个建站平台上线的时候,往往都会带上平台的一些logo或者版权信息,然而这…

跨屏建站saas系统2021.4.27发布更新

跨屏建站saas系统2021.4.27发布更新,增加了聚合头条板块,saas建站除了成本低,建站快,更多的还是应该能够连接企业与企业的通道,以及帮助企业把信息推广出去,这才是saas建站的本质,也只有saas建站…

如何申请注册跨屏建站“跨屏号”

企业要网络营销,离不开网站。 而做网站的第一步,你只需要注册一个自助建站平台的账号即可快速开启。 跨屏网专注于h5响应式网站的开发,模板多、代码规范标准、后台操作简单,如果后期seo优化做的好,很容易获得百度的排…

电脑版、3g版、触屏版、跨屏版,网站为何需要重新定义?

从pc端为主、pc手机版,再到移动优先,网站到底发生了哪些变化? 跨屏时代的到来,让推广理念和建站方式随之发生改变。 2010年,被许多人称为移动互联网元年,这一年,用户逐渐将重心从PC端转到动端。 跨屏理念渗透到各个行业,比如最各大手机厂商oppo,小米…

我想这就是我选择模板自助建站平台的原因

伴随着低代码、无代码技术的出现,自助建站平台再次受到关注,只要会打字就能建站,面向小白的模板自助建站平台何尝又不是低代码、无代码技术呢?并且随着技术的革新,模板建站提供的模板不仅跨屏自适应,而且也…

【跨屏建站网】选择自助建站平台很重要的一个指标

跨屏建站网主攻电脑、手机多屏多端自适应的自助建站系统的开发,下面和大家讲讲选择自助建站平台很重要的一个指标,这是一般人不会提及的,但是又非常重要的。 首先我们不讲大家常提到的,什么网站功能强大,模板漂亮选择…

学习豆瓣好榜样–网站架构

这次的 QCon 会议,《豆瓣网技术架构的发展历程》这个议题差不多是最受关注的。洪强宁在演讲开始告诫大家期望值不要太高,我还是相信不会有人觉得失望的。 先说几句题外话,整个演讲听下来,我们会发现豆瓣在发展的过程中也是有点弯路…

跨屏建站网发布响应式电子商务网站主题kpshop

跨屏建站网发布响应式电子商务网站主题kpshop,在此之前我们开发了会员专用主题kpvip,博客专用主题kpblog,企业官网专用主题kpcom,而此次开发的跨屏响应式电子商务模板主题代号kpshop主要针对企业商城设计,采用简约式设…

跨屏建站平台2023.3.4发布更新,启用了新logo

跨屏建站平台2023.3.4发布更新,启用了新logo,网站整体风格布局进行了比较大的调整,走的是极简设计风格,最大的变化是网站变得更加简洁了,网站采用极简设计的好处很多,不仅耐看,而且对于手机下的…

再跟 Flickr 学习网站运维经验

Image via CrunchBase 学习了一下 Flickr 的运维工程师 John Allspaw 的这个Operational Efficiency Hacks 讲座内容。做一点笔记。 现在 Flickr 的数据相比2007年的时候真是有了显著的增长: 24 TB 的 MySQL 数据每秒钟 MySQL 有 3.2 万次写操作每秒钟 MySQL 有 12…

小白前端开发笔记-创建网站的细节(娃娃级)导航栏的写法细则 搜索框的写法细则

拿到后的操作: 观看布局 确定版心 :1102px 基础准备: *{ margin: 0px; padding: 0px; line-height: 1; } .center { width: 1100px; margin: 0px auto; } li{ list-style-type: none; } a{ text-decoration: none; } 针对form的操作&#xf…

杨泽业:给你的php网站添加经典语录功能

我们做一个网站就是要不断给访客提供最佳的用户体验,同时提升自己的品牌价值,而文章结束的经典语录的功能,完全可以实现我们所要达到的效果。(如下图)给你的wordpress博客添加经典语录功能这个是怎样实现的呢&#xff…

我的网站搭建: (第四天) 导航栏与页脚

2019独角兽企业重金招聘Python工程师标准>>> 经过观察可以发现,基本上每个网站都会有一个叫导航栏的东西,其目的就是为了方便用户找到自己查看的页面。导航栏可以自己制作,但我选择的方法是使用Bootstrap框架,还有给每…

网站规划通识:原型图绘制的一些注意事项

本文来自网易云社区作者:林玮园雷火游戏部 网站组基本概念:一、什么叫原型图?用线条、图形描绘出产品/专题的框架,即为原型,也可称线框图。原型图的输出可根据质量,大致分为低保真、中保真、高保真原型图。…

PHP、CMS网站搬家详细流程【系原创…

本文系原创,转载请注明出处: 流程自我备份,以备他人学习及自身查阅,另外本文主要针对在本机开发网站(DEDECMS)后上传至服务器可能出现的一些问题及流程说明 1.服务器端基本的部署请参照(包括IIS…

DEDEAMPZ设置相关(运行测试网站)

除了修改WEB站点配置信息外,还需自身HOST 文件 WEB站点配置:、“PS:路径上用“ / ” 而不是“\””HOST文件配置如果有多个网站,这进行多行添加PS:安装版本上选择“服务器版本”,否则无法进行多网站调试

下载视频网站flv文件的两种方法(080526添加新方法)

目前网路上有不少著名的网络视频网站或者播客,例如youtube、土豆、酷6、新浪播客等等,里面有许多flv视频值得下载收藏,不过这些网站都做了一定的保护措施防止下载,这里我介绍两种下载方法给大家,对绝大多数视频、播客网…