亿级用户下的新浪微博平台架构

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1. 亿级用户下的新浪微博平台架构   @卫向军_微博  
2. Agenda   1.  微博的技术架构 2.  微博平台的技术挑战 3.  微博平台架构演变与第三代技术架构体系 4.  Watchman-分布式服务追踪系统 5.  Feed多级双机房缓存系统 6.  致谢
3. 微博技术架构   客户端   Web(JS、CSS、HTML)   接入层   Web(php)   后台   搜索   Android   MAPI   微博平台(Java)   iPhone   Push 网关   大数据  
4. 平台架构演变   2009 - 2010 LAMP   2011 - 2014 面向SOA的架构   2014 – 将来 技术架构、业务架构、 技术保障多维度结合  
5. 平台技术挑战   10亿级PV,百万级的QPS,千亿级数据   4个9的可用性,150ms的SLA,线上故障5min内处理。   1.02亿DAU,6941万的总互动量,相关阅读数41.5亿(羊年除夕)。   百个微服务,2次/周的常规上线与不限次数的紧急上线   数据量 bigger than bigger 用户体验 业务 faster than faster more and more
6. 第三代技术体系   业务架构 技术架构 4 1 接口层 Feed 关系 通讯 2 7 关系 RPC 通讯 服务层 MCQ 短链 用户 发号器 3 Config 6 MC HBase Cache组件 Redis MySQL 对象库 基 础 组 件 + 分 布 式 追 踪 组 件 服务治理 10 SLA 接口框架 5 Feed 资源层 监控平台 8 流量切换 11 服务状态 服务依赖 调用链 发布和灰度 9 12 Error 扩容与缩容 异常
7. 水平维度分析   层次   特点   机器   技术保障   接口层   •  无状态设计   •  前端(侧重 •  高可扩展性   •  支持HTTP/1.1协 CPU和内存)   •  支持内外网两 议,JSON数据格 种部署   式     服务层   •  无状态设计   •  RPC  Server   •  高可扩展性   •  组合服务与原子 队列处理机 •  主要部署在内 服务   (侧重CPU和 网   内存)   资源层   •  数据可靠性要求 •  Hbase/MySQL   •  很高   •  MC/MCQ/ •  容量与QPS规划   •  •  扩容方案   Redis(侧重 •  内存与硬盘)   •  扩展性较差   数据迁移   服务扩容   安全性要求高  
8. 平台架构延伸   维度   业务架构   技术架构   技术保障   平台团队   •  业务架构师 •  技术架构师   •  平台运维团 和业务工程 队   师   团队职责   •  业务模块化、 •  提供标准化 •  服务保障   服务化   •  服务上线、 的技术框架   下线   •  业务流程优 •  业务监控与 •  解决系统高 报警   化     并发、高可 •  业务容量评 用、高可扩 估   展问题   1.  平台组织架构(物理)与技术体系(逻辑)从无缝结合,提 高了团队协作的效率,降低了沟通成本。   2.  12个区间分别聚焦于各自的侧重点,指明长期的发展方向。  
9. 分布式追踪系统  
10. 分布式服务痛点   •  同一个请求,处理时依赖多 个微服务。   •  各个服务之间互相隔离,导 致出问题时,排查特别困难。   •  不同服务的日志无法有效的 匹配。    
11. WatchMan系统 解决的问题   •  生成完整的请求调用链,方便排查问题。   •  生成服务依赖关系图,查询线上服务的状态。   •  结合RPC框架,扩展服务治理功能。   设计要点   •  生成唯一的RequestID标识,并逐级递归传递给调用的 HTTP与RPC服务。   •  对业务系统最低侵入原则,使用AOP方式织入平台中 间件。   •  对业务系统性能影响最小,采用1/1000的采样率。  
12. 调用链模型 User 节点A   CS SR CS 节点B rpc1   SR CR SS CS SR 节点D rpc3   rpc2   rpc4   CR CR SS SS 节点C   节点E 4节点模型:   CS  =  Client  Send   SR  =  Server  Receive   SS  =  Server  Send   CR  =  Client  Receive  
13. 系统架构设计 agent agent Web  V4  Server Web  V4  Client 1.1 agent agent RPC  Client (MC/Redis/资源 中间件/...) RPC  Server 1.3 1.2 标准化日志 1.4 解决跨语言、跨框架的问题,微 博平台所有服务以及接口通过生 成标准的日志,支撑不同的接口 框架以及RPC服务框架。 Scriber  Serer Spark HBase UI
14. Feed多级分布式缓存设计  
15. ⽤用户访问模型驱动设计   模型建 立   模型摸 索   模型发 生变化   常见的模型指标:   •  读写比   •  访问时长分布   •  访问时段分布   •  访问量分布   •  访问来源分布   •  ……  
16. Feed用户行为分析   ⽤用户浏览⻚页数统计 微博曝光量⽇日志抽样分析: 97%⽤用户都是浏览5天内的微博
17. Feed缓存结构与聚合图  
18. 多级双机房缓存系统   idc1   idc2   L1扩容,增加吞吐量   L1  Group   L1  Group   Master扩容,增加容量   Master  Group   idc1过来的请求   L1  Group   互为主备   L1  Group   Slave  Group   •  支持一致性Hash、Mod、日期hash等策略。   idc2过来的请求   •  每一组资源最佳4-­‐6台。  
19. Feed  存储架构-­‐MySQL  
20.                        offset,count   一级索引   ids   内容   Content   UID  Hash/分库   •  按照UID分库 分表   •  每个用户每个 月一条记录   •  每条记录表示 这个用户这个 月发表了多少 条微博   按照Month分表   •  数据冷热区分   •  每个instance冷热数据均等   •  按照ID分库 分表   •  每天建立一 张表  
21. 总结   在分布式服务系统中,业务架构、技 术架构与技术保障三者互为补充,共 同保障系统的高可用性、高可扩展性、 高吞吐量。    
22. Thank  You!   @卫向军_微博  

Home - Wiki
Copyright © 2011-2024 iteam. Current version is 2.137.1. UTC+08:00, 2024-11-19 19:36
浙ICP备14020137号-1 $Map of visitor$