“亿级用户下的新浪微博平台架构”探讨了新浪微博如何应对亿级用户的高流量、高可用性和大数据处理需求。演讲者@卫向军_微博介绍了微博的技术架构、面临的挑战、架构的演进以及关键系统如分布式服务追踪系统和多级双机房缓存系统的实现。
1. 微博的技术架构:微博平台由多个组成部分构成,包括Java平台、搜索、大数据、MAPI、Android和iPhone客户端、Web应用(PHP和JavaScript/CSS/HTML)、Push网关、接入层和后台服务。这个复杂的架构设计旨在处理大量的用户交互和数据传输。
2. 平台的技术挑战:微博需要处理每日10亿级别的页面浏览量(PV),每秒百万级别的查询请求(QPS),以及千亿级别的数据存储。此外,它必须保证99.99%的可用性,响应时间小于150毫秒,并且在出现线上故障时能在5分钟内解决。随着用户活跃度的增加,业务复杂性和微服务数量也在不断增长,这带来了频繁的版本更新和紧急上线的需求。
3. 架构演变:从最初的LAMP架构(Linux、Apache、MySQL、PHP)发展到面向服务导向的架构(SOA),再到技术架构、业务架构和技术保障的多维度结合。这种演进反映了微博在应对用户规模增长和业务复杂性增加时的适应性。
4. 第三代技术架构体系:在水平维度上分为接口层、服务层和资源层。接口层采用无状态设计,支持HTTP/1.1协议和JSON数据格式,具有高可扩展性,适应内外网部署。服务层同样无状态,通过RPC实现组合服务和原子服务,主要部署在内网。资源层负责数据存储,对数据可靠性要求极高,采用HBase、MySQL、MC/MCQ/Redis等存储系统,但扩展性相对较差,需要考虑数据迁移和容量规划。
5. 分布式服务追踪系统(Watchman):这是一个关键组件,用于跟踪服务间的调用链,帮助诊断性能问题和异常,确保服务质量和SLA(服务水平协议)。
6. Feed多级双机房缓存系统:为了优化用户体验和减轻后端压力,微博采用了多级缓存策略,包括在不同机房中设置缓存,以减少延迟并提高数据一致性。
总结来说,亿级用户下的新浪微博平台架构展示了大型社交网络如何通过不断演进的技术解决方案来应对海量用户、数据和业务需求。其成功之处在于灵活的架构设计、高效的缓存策略、强大的服务追踪系统以及对可用性和性能的严格保障。这些经验对于其他面临类似挑战的大型互联网企业具有重要的参考价值。