移动互联网内容平台的架构...
TRANSCRIPT
![Page 1: 移动互联网内容平台的架构 和性能优化velocity.oreilly.com.cn/2010/ppts/velocitychina2010SunLi.pdf · 移动互联网内容平台的架构 和性能优化 ... o 给手机客户端提供的服务最好压缩](https://reader034.vdocuments.pub/reader034/viewer/2022042505/5f412d195d630538ad0e5383/html5/thumbnails/1.jpg)
移动互联网内容平台的架构 和性能优化
孙立@凤凰网
http://t.ifeng.com/sunli http://t.sina.com/sunli1223
![Page 2: 移动互联网内容平台的架构 和性能优化velocity.oreilly.com.cn/2010/ppts/velocitychina2010SunLi.pdf · 移动互联网内容平台的架构 和性能优化 ... o 给手机客户端提供的服务最好压缩](https://reader034.vdocuments.pub/reader034/viewer/2022042505/5f412d195d630538ad0e5383/html5/thumbnails/2.jpg)
传统的CMS系统 CMS类型 中小型CMS 门户CMS 代表 Phpcms php168 新浪,搜狐,凤凰网 整体结构 结构简单 (db+前端[静态化]) 结构复杂 存储 分发 分布式 功能 几乎能满足中小型内容网站 完全满足门户型的内容需要 互动 包含各种互动功能,投票,评论 以独立服务提供
使用 一般人员即可使用 编辑团队+技术支持团队 访问规模 几千万pv/日 上亿 访问速度 多线机房 高速CDN架构 扩展性 几台机器 上百到千 稳定性 一般 高 成本 低 相对较高
![Page 3: 移动互联网内容平台的架构 和性能优化velocity.oreilly.com.cn/2010/ppts/velocitychina2010SunLi.pdf · 移动互联网内容平台的架构 和性能优化 ... o 给手机客户端提供的服务最好压缩](https://reader034.vdocuments.pub/reader034/viewer/2022042505/5f412d195d630538ad0e5383/html5/thumbnails/3.jpg)
从互联网到移动互联网 o 3G和GPRS资费下调 o 智能手机的铺天盖地
![Page 4: 移动互联网内容平台的架构 和性能优化velocity.oreilly.com.cn/2010/ppts/velocitychina2010SunLi.pdf · 移动互联网内容平台的架构 和性能优化 ... o 给手机客户端提供的服务最好压缩](https://reader034.vdocuments.pub/reader034/viewer/2022042505/5f412d195d630538ad0e5383/html5/thumbnails/4.jpg)
移动互联网面临的挑战
多运营商(电信,移动等)
多终端(比PC更多)
需求多变(需要赚钱嘛)
访问量节节飙升
难道我注定就要加班吗
页面不能静态化
![Page 5: 移动互联网内容平台的架构 和性能优化velocity.oreilly.com.cn/2010/ppts/velocitychina2010SunLi.pdf · 移动互联网内容平台的架构 和性能优化 ... o 给手机客户端提供的服务最好压缩](https://reader034.vdocuments.pub/reader034/viewer/2022042505/5f412d195d630538ad0e5383/html5/thumbnails/5.jpg)
手机凤凰网的上一版本
wapcms
mysql wap1
反向代理
主库
wap2
UC合作
mysql
mysql
mysql
移动作合
![Page 6: 移动互联网内容平台的架构 和性能优化velocity.oreilly.com.cn/2010/ppts/velocitychina2010SunLi.pdf · 移动互联网内容平台的架构 和性能优化 ... o 给手机客户端提供的服务最好压缩](https://reader034.vdocuments.pub/reader034/viewer/2022042505/5f412d195d630538ad0e5383/html5/thumbnails/6.jpg)
手机凤凰网的上一版本
wapcms
mysql wap1
反向代理(cache)
主库
wap2
UC合作
mysql
mysql
mysql
移动作合
开发人员 编辑 用户
![Page 7: 移动互联网内容平台的架构 和性能优化velocity.oreilly.com.cn/2010/ppts/velocitychina2010SunLi.pdf · 移动互联网内容平台的架构 和性能优化 ... o 给手机客户端提供的服务最好压缩](https://reader034.vdocuments.pub/reader034/viewer/2022042505/5f412d195d630538ad0e5383/html5/thumbnails/7.jpg)
开发人员维护很多合作站点
代码质量不容易保证
MYSQL不堪重负
Cache导致发布的内容不及时
![Page 8: 移动互联网内容平台的架构 和性能优化velocity.oreilly.com.cn/2010/ppts/velocitychina2010SunLi.pdf · 移动互联网内容平台的架构 和性能优化 ... o 给手机客户端提供的服务最好压缩](https://reader034.vdocuments.pub/reader034/viewer/2022042505/5f412d195d630538ad0e5383/html5/thumbnails/8.jpg)
IMCP介绍 o 支持了手机凤凰网(wap1.0,2.0) o 支持了凤凰移动台 o 支持了视频客户端 o 支持了凤凰新闻客户端 o 支持了活动直播…… o 在线开发 o 单机性能1800+万PV/日
![Page 9: 移动互联网内容平台的架构 和性能优化velocity.oreilly.com.cn/2010/ppts/velocitychina2010SunLi.pdf · 移动互联网内容平台的架构 和性能优化 ... o 给手机客户端提供的服务最好压缩](https://reader034.vdocuments.pub/reader034/viewer/2022042505/5f412d195d630538ad0e5383/html5/thumbnails/9.jpg)
网页是由可拆分的块组成的
![Page 10: 移动互联网内容平台的架构 和性能优化velocity.oreilly.com.cn/2010/ppts/velocitychina2010SunLi.pdf · 移动互联网内容平台的架构 和性能优化 ... o 给手机客户端提供的服务最好压缩](https://reader034.vdocuments.pub/reader034/viewer/2022042505/5f412d195d630538ad0e5383/html5/thumbnails/10.jpg)
IMCP功能结构
IMCP
站点
栏目
文档
页面
模板
碎片
![Page 11: 移动互联网内容平台的架构 和性能优化velocity.oreilly.com.cn/2010/ppts/velocitychina2010SunLi.pdf · 移动互联网内容平台的架构 和性能优化 ... o 给手机客户端提供的服务最好压缩](https://reader034.vdocuments.pub/reader034/viewer/2022042505/5f412d195d630538ad0e5383/html5/thumbnails/11.jpg)
IMCP功能结构
IMCP
站点
栏目
文档
页面
模板
碎片
逻辑代码
![Page 12: 移动互联网内容平台的架构 和性能优化velocity.oreilly.com.cn/2010/ppts/velocitychina2010SunLi.pdf · 移动互联网内容平台的架构 和性能优化 ... o 给手机客户端提供的服务最好压缩](https://reader034.vdocuments.pub/reader034/viewer/2022042505/5f412d195d630538ad0e5383/html5/thumbnails/12.jpg)
后台部分截图演示
![Page 13: 移动互联网内容平台的架构 和性能优化velocity.oreilly.com.cn/2010/ppts/velocitychina2010SunLi.pdf · 移动互联网内容平台的架构 和性能优化 ... o 给手机客户端提供的服务最好压缩](https://reader034.vdocuments.pub/reader034/viewer/2022042505/5f412d195d630538ad0e5383/html5/thumbnails/13.jpg)
一些操作演示-页面的管理
![Page 14: 移动互联网内容平台的架构 和性能优化velocity.oreilly.com.cn/2010/ppts/velocitychina2010SunLi.pdf · 移动互联网内容平台的架构 和性能优化 ... o 给手机客户端提供的服务最好压缩](https://reader034.vdocuments.pub/reader034/viewer/2022042505/5f412d195d630538ad0e5383/html5/thumbnails/14.jpg)
页面的管理
![Page 15: 移动互联网内容平台的架构 和性能优化velocity.oreilly.com.cn/2010/ppts/velocitychina2010SunLi.pdf · 移动互联网内容平台的架构 和性能优化 ... o 给手机客户端提供的服务最好压缩](https://reader034.vdocuments.pub/reader034/viewer/2022042505/5f412d195d630538ad0e5383/html5/thumbnails/15.jpg)
页面的管理
![Page 16: 移动互联网内容平台的架构 和性能优化velocity.oreilly.com.cn/2010/ppts/velocitychina2010SunLi.pdf · 移动互联网内容平台的架构 和性能优化 ... o 给手机客户端提供的服务最好压缩](https://reader034.vdocuments.pub/reader034/viewer/2022042505/5f412d195d630538ad0e5383/html5/thumbnails/16.jpg)
页面的管理
![Page 17: 移动互联网内容平台的架构 和性能优化velocity.oreilly.com.cn/2010/ppts/velocitychina2010SunLi.pdf · 移动互联网内容平台的架构 和性能优化 ... o 给手机客户端提供的服务最好压缩](https://reader034.vdocuments.pub/reader034/viewer/2022042505/5f412d195d630538ad0e5383/html5/thumbnails/17.jpg)
碎片
![Page 18: 移动互联网内容平台的架构 和性能优化velocity.oreilly.com.cn/2010/ppts/velocitychina2010SunLi.pdf · 移动互联网内容平台的架构 和性能优化 ... o 给手机客户端提供的服务最好压缩](https://reader034.vdocuments.pub/reader034/viewer/2022042505/5f412d195d630538ad0e5383/html5/thumbnails/18.jpg)
新建一个网页
![Page 19: 移动互联网内容平台的架构 和性能优化velocity.oreilly.com.cn/2010/ppts/velocitychina2010SunLi.pdf · 移动互联网内容平台的架构 和性能优化 ... o 给手机客户端提供的服务最好压缩](https://reader034.vdocuments.pub/reader034/viewer/2022042505/5f412d195d630538ad0e5383/html5/thumbnails/19.jpg)
模板
![Page 20: 移动互联网内容平台的架构 和性能优化velocity.oreilly.com.cn/2010/ppts/velocitychina2010SunLi.pdf · 移动互联网内容平台的架构 和性能优化 ... o 给手机客户端提供的服务最好压缩](https://reader034.vdocuments.pub/reader034/viewer/2022042505/5f412d195d630538ad0e5383/html5/thumbnails/20.jpg)
模板
![Page 21: 移动互联网内容平台的架构 和性能优化velocity.oreilly.com.cn/2010/ppts/velocitychina2010SunLi.pdf · 移动互联网内容平台的架构 和性能优化 ... o 给手机客户端提供的服务最好压缩](https://reader034.vdocuments.pub/reader034/viewer/2022042505/5f412d195d630538ad0e5383/html5/thumbnails/21.jpg)
模板[在线开发]
![Page 22: 移动互联网内容平台的架构 和性能优化velocity.oreilly.com.cn/2010/ppts/velocitychina2010SunLi.pdf · 移动互联网内容平台的架构 和性能优化 ... o 给手机客户端提供的服务最好压缩](https://reader034.vdocuments.pub/reader034/viewer/2022042505/5f412d195d630538ad0e5383/html5/thumbnails/22.jpg)
逻辑[可重用性]
![Page 23: 移动互联网内容平台的架构 和性能优化velocity.oreilly.com.cn/2010/ppts/velocitychina2010SunLi.pdf · 移动互联网内容平台的架构 和性能优化 ... o 给手机客户端提供的服务最好压缩](https://reader034.vdocuments.pub/reader034/viewer/2022042505/5f412d195d630538ad0e5383/html5/thumbnails/23.jpg)
页面渲染流程 拦截处理(所有请求)
http header预输出
渲染页面
结束处理(统计)
获取页面配置
获取模板配置
解析模板
组装成PHP模板
编译组装的php模板
运行编译后的php模板
![Page 24: 移动互联网内容平台的架构 和性能优化velocity.oreilly.com.cn/2010/ppts/velocitychina2010SunLi.pdf · 移动互联网内容平台的架构 和性能优化 ... o 给手机客户端提供的服务最好压缩](https://reader034.vdocuments.pub/reader034/viewer/2022042505/5f412d195d630538ad0e5383/html5/thumbnails/24.jpg)
页面渲染流程 拦截处理(所有请求)
http header预输出
渲染页面
结束处理(统计)
获取页面配置
获取模板配置
解析模板
组装成X语言模板
编译组装的X语言模板
运行编译后的X语言模板
支持多语言
![Page 25: 移动互联网内容平台的架构 和性能优化velocity.oreilly.com.cn/2010/ppts/velocitychina2010SunLi.pdf · 移动互联网内容平台的架构 和性能优化 ... o 给手机客户端提供的服务最好压缩](https://reader034.vdocuments.pub/reader034/viewer/2022042505/5f412d195d630538ad0e5383/html5/thumbnails/25.jpg)
分发的动态模板处理过程 获取页面配置
获取模板
解析碎片(chip)
筛选出动态碎片
解析动态碎片
解析逻辑(logic)
解析文档(doc)
处理碎片
处理逻辑
处理文档
处理回调
生成相应的处理代理
![Page 26: 移动互联网内容平台的架构 和性能优化velocity.oreilly.com.cn/2010/ppts/velocitychina2010SunLi.pdf · 移动互联网内容平台的架构 和性能优化 ... o 给手机客户端提供的服务最好压缩](https://reader034.vdocuments.pub/reader034/viewer/2022042505/5f412d195d630538ad0e5383/html5/thumbnails/26.jpg)
提升工作效率
Coding online
版本控制
提供SDK,易使用
可视化管理
自动适应客户端
在线代码复用
![Page 27: 移动互联网内容平台的架构 和性能优化velocity.oreilly.com.cn/2010/ppts/velocitychina2010SunLi.pdf · 移动互联网内容平台的架构 和性能优化 ... o 给手机客户端提供的服务最好压缩](https://reader034.vdocuments.pub/reader034/viewer/2022042505/5f412d195d630538ad0e5383/html5/thumbnails/27.jpg)
功能强大,性能怎么办?
![Page 28: 移动互联网内容平台的架构 和性能优化velocity.oreilly.com.cn/2010/ppts/velocitychina2010SunLi.pdf · 移动互联网内容平台的架构 和性能优化 ... o 给手机客户端提供的服务最好压缩](https://reader034.vdocuments.pub/reader034/viewer/2022042505/5f412d195d630538ad0e5383/html5/thumbnails/28.jpg)
IMCP系统的整体设计
![Page 29: 移动互联网内容平台的架构 和性能优化velocity.oreilly.com.cn/2010/ppts/velocitychina2010SunLi.pdf · 移动互联网内容平台的架构 和性能优化 ... o 给手机客户端提供的服务最好压缩](https://reader034.vdocuments.pub/reader034/viewer/2022042505/5f412d195d630538ad0e5383/html5/thumbnails/29.jpg)
快,再快一点 o 页面执行时间毫秒级 o CPU利用率最高80%,负载为8 o 一定要安装加速器[APC、eAccelerator] o 充分利用内存
![Page 30: 移动互联网内容平台的架构 和性能优化velocity.oreilly.com.cn/2010/ppts/velocitychina2010SunLi.pdf · 移动互联网内容平台的架构 和性能优化 ... o 给手机客户端提供的服务最好压缩](https://reader034.vdocuments.pub/reader034/viewer/2022042505/5f412d195d630538ad0e5383/html5/thumbnails/30.jpg)
前端优化 o 通过nginx给Html,css做gzip压缩 o 访问运营商自己的机房,动态CDN o 给支持优化功能的机器提供优化 o 手机适配,加载不同的CSS,不同内容 o 给手机客户端提供的服务最好压缩
![Page 31: 移动互联网内容平台的架构 和性能优化velocity.oreilly.com.cn/2010/ppts/velocitychina2010SunLi.pdf · 移动互联网内容平台的架构 和性能优化 ... o 给手机客户端提供的服务最好压缩](https://reader034.vdocuments.pub/reader034/viewer/2022042505/5f412d195d630538ad0e5383/html5/thumbnails/31.jpg)
异步化处理日志
$queue=M::getMemcacheInstance ( 'statbench' ); //访问日志 $queue->add ( "waplog_password", $statUrl ); //性能监控 $queue->add( "wapbench_password", "性能日志内容" );
ICQueue能应付30万write/s
![Page 32: 移动互联网内容平台的架构 和性能优化velocity.oreilly.com.cn/2010/ppts/velocitychina2010SunLi.pdf · 移动互联网内容平台的架构 和性能优化 ... o 给手机客户端提供的服务最好压缩](https://reader034.vdocuments.pub/reader034/viewer/2022042505/5f412d195d630538ad0e5383/html5/thumbnails/32.jpg)
Cache缓存
o Cache对开发人员的弱化 o 不要过度依赖某一个Cache实例
凤凰移动台
视频客户端
新闻客户端
手机凤凰网
合作站点
底层框架 Key-value
Key-value
memcached
第三方服务
在线开发 底层基础框架 基础服务和存储
![Page 33: 移动互联网内容平台的架构 和性能优化velocity.oreilly.com.cn/2010/ppts/velocitychina2010SunLi.pdf · 移动互联网内容平台的架构 和性能优化 ... o 给手机客户端提供的服务最好压缩](https://reader034.vdocuments.pub/reader034/viewer/2022042505/5f412d195d630538ad0e5383/html5/thumbnails/33.jpg)
NOSQL的利用 o 列表的存储(50页) o 模板,碎片,文档 o 在线开发的代码 o 非常容易分发-主从复制 o 维护方便,无需DBA o ttserver到自行开发的INetDB
![Page 34: 移动互联网内容平台的架构 和性能优化velocity.oreilly.com.cn/2010/ppts/velocitychina2010SunLi.pdf · 移动互联网内容平台的架构 和性能优化 ... o 给手机客户端提供的服务最好压缩](https://reader034.vdocuments.pub/reader034/viewer/2022042505/5f412d195d630538ad0e5383/html5/thumbnails/34.jpg)
高可用 o Memcached客户端的故障转移 o 后台宕机不影响前台用户
web1 nosql
nosql
$memcache = new Memcache; $memcache->addServer('memcache_host', 11211); $memcache->addServer('memcache_host2', 11211);
web2
LB
![Page 35: 移动互联网内容平台的架构 和性能优化velocity.oreilly.com.cn/2010/ppts/velocitychina2010SunLi.pdf · 移动互联网内容平台的架构 和性能优化 ... o 给手机客户端提供的服务最好压缩](https://reader034.vdocuments.pub/reader034/viewer/2022042505/5f412d195d630538ad0e5383/html5/thumbnails/35.jpg)
监控 o Cacti, Nagios监控 o 代码执行性能监控 o NOSQL存储监控
![Page 36: 移动互联网内容平台的架构 和性能优化velocity.oreilly.com.cn/2010/ppts/velocitychina2010SunLi.pdf · 移动互联网内容平台的架构 和性能优化 ... o 给手机客户端提供的服务最好压缩](https://reader034.vdocuments.pub/reader034/viewer/2022042505/5f412d195d630538ad0e5383/html5/thumbnails/36.jpg)
![Page 37: 移动互联网内容平台的架构 和性能优化velocity.oreilly.com.cn/2010/ppts/velocitychina2010SunLi.pdf · 移动互联网内容平台的架构 和性能优化 ... o 给手机客户端提供的服务最好压缩](https://reader034.vdocuments.pub/reader034/viewer/2022042505/5f412d195d630538ad0e5383/html5/thumbnails/37.jpg)
p 架构和优化都应该基于业务之上 p 节省重复计算-预计算 p NOSQL很时尚,但要用对地方 p 可扩展性比性能更重要 p 注意单点故障
建议
![Page 38: 移动互联网内容平台的架构 和性能优化velocity.oreilly.com.cn/2010/ppts/velocitychina2010SunLi.pdf · 移动互联网内容平台的架构 和性能优化 ... o 给手机客户端提供的服务最好压缩](https://reader034.vdocuments.pub/reader034/viewer/2022042505/5f412d195d630538ad0e5383/html5/thumbnails/38.jpg)
谢谢大家 Q&A