第1页
新浪博客架构分享
刘晓震 新浪博客
刘晓震
30分钟
第2页
议程
• 新浪博客介绍 • 挑战 • 博客架构介绍 • 展望 • QA
新浪博客架构分享
第3页
新浪博客介绍
新浪博客是国内知名的博客服务,拥有高访问 流量的Web2.0动态应用类网站。 •>5年 •千万级用户 •几十亿数据记录 •十亿级PV/日 •亿级动态请求数/日
新浪博客架构分享
第4页
博客应用特点:
� 亿级访问 � 读多写少 � 热点用户 � 富媒体
挑战:
� 高访问量 � 用户体验 � 性能监控
挑战
新浪博客架构分享
第5页
博客架构介绍
新浪博客架构分享
第6页
• 系统层次
博客架构介绍
新浪博客架构分享
第7页
7层代理
•Nginx
� 多IDC部署 � HTML文件服务 � 代理服务 � Squid管理
新浪博客架构分享
第8页
静态化
• Squid
� 与Nginx对等部署 � 反向代理 � 静态缓存服务
新浪博客架构分享
第9页
静态缓存
� 缓存原则 � 数据内容类型及渲染方式 � 页面生成成本 � 访问量和命中率 � 更新复杂度 � 缓存命中率优化 � 减少冗余存储 � 忽略no-cache � 良好的URL设计 � 区分访问者和访问类型
新浪博客架构分享
第10页
动态应用层
• Apache+PHP组成Web服务单元
� 环境统一 配置和管理 � 按业务功能划分服务模块 � 代码一致且同步上线 � 可快速扩展
• 基于Memcacheq的消息队列系统
� 扩展消息格式 � 异常处理 � 伸缩性
新浪博客架构分享
第11页
数据缓存
• Memcached • 缓存类型
� 共享内存数据 � 结果数据 � 热点 � 索引、聚合数据
新浪博客架构分享
第12页
•缓存管理
�设计 �容量 �命中率
数据缓存
新浪博客架构分享
第13页
数据层
• Mysql数据库承担核心业务
� 关系查询 � 数据存储
• MemcacheDB作为KV存储
� 数据结构简单 � 高并发读写 � 可扩展能力强
新浪博客架构分享
第14页
数据层
• Mysql
� 冷热分离 � 大字段剥
离
� 简单使用
热用户 普通用户 用户数 5000 6000万
访问量 1000万 1亿
冷热分离
存储量 60G
4T
备份策略 每天
速度
0.00 5秒
每周 0.03秒
原因
0.01%人占10%流量
效果
提升速度7倍 降低备份成本 数据安全提升
新浪博客架构分享
第15页
数据层
• Mysql
� 冷热分离 � 大字段剥离 � 简单使用
新浪博客架构分享
第16页
• 前端监控
�基调系统 �RiaDebug
• 后端监控
�Xdebug �back日志 �Syslog
• 系统监控
性能监控
第17页
展望
• 数据访问层--DAL • 接口请求合并--SSI • 缓存系统简化--Redis • 开放、结合--OpenAPI
新浪博客架构分享
第18页
欢迎加入新浪产品部技术团队
新浪微博:@刘晓震 xiaozhen@staff.sina.com.cn