"这篇文档详细介绍了亿级用户规模下的新浪微博平台架构,涵盖了微博的技术挑战、架构的演变历程、第三代技术架构体系,以及重要的分布式服务追踪系统Watchman和Feed多级双机房缓存系统。"
在亿级用户量的背景下,新浪微博平台面临的技术挑战主要体现在以下几个方面:
1. **大规模数据处理**:每日处理十亿级别的页面浏览量(PV),百万级别的每秒请求数(QPS),以及存储和处理千亿级别的海量数据。
2. **高可用性和性能**:为了保证用户体验,平台需要达到4个9的可用性(即99.99%的时间正常运行),并确保服务响应时间不超过150毫秒。此外,线上故障要求在5分钟内解决。
3. **用户活跃度**:日活跃用户(DAU)超过一亿,每天有数千万的用户互动,以及数十亿的关联阅读,这些都对系统的实时处理能力提出了极高要求。
4. **快速迭代**:微博平台的微服务数量众多,每周至少进行两次常规更新,并随时应对紧急上线的需求。
微博平台的架构经历了从传统的LAMP架构到面向服务架构(SOA)的转变,再到技术架构、业务架构和技术保障三维度相结合的第三代技术架构体系。这一演进过程中,微博平台逐渐优化了其服务层、接口层和资源层的设计,以实现更好的扩展性和效率。
**接口层** 设计为无状态,支持HTTP/1.1协议和JSON数据格式,主要关注CPU和内存的优化,提供高可扩展性,适应内外网两种部署环境。
**服务层** 同样是无状态设计,分为组合服务和原子服务,采用RPC服务器进行通信,侧重于CPU和内存的处理能力,部署在内网以保证安全性。
**资源层** 是数据存储的核心,需要极高的数据可靠性,包括HBase、MySQL、MC(Memcached)、MCQ(Memcache Queue)和Redis等,用于不同场景的数据存储和访问。资源层的扩展性相对较低,但必须有成熟的扩容方案和数据迁移策略。
**Watchman-分布式服务追踪系统** 用于监控和追踪服务间的调用链路,帮助诊断和优化性能问题,确保服务质量和SLA(服务水平协议)。
**Feed多级双机房缓存系统** 则是为了提高数据读取速度,减少对后端数据库的压力,通过多级缓存(可能包括本地缓存、分布式缓存等)和跨机房的同步机制,保证用户能够快速获取新鲜的Feed信息。
新浪微博平台架构通过不断优化和创新,成功地应对了亿级用户量带来的各种挑战,实现了高效、稳定和可扩展的服务。