`
varsoft
  • 浏览: 2509585 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

[转]构建可扩展的微博架构--新浪微博系统架构

阅读更多

构建可扩展的微博架构(qcon beijing 2010演讲)

作者:TimYang

来源:http://timyang.net/architecture/microblog-design-qcon-beijing/

在使用Twitter几年的时间里面,经常思考微博如何更好的实现,恰好最近几个月也参与了相关工作,大部分都是工程实践,总结实践会促生更具实际价值的理论。因此在QCon Beijing 2010这次演讲参考了不少网友的意见后选择了《构建可扩展微博架构》的题目。
由于在决定选题时知道来自Twitter总部有30万followers的@nk也会讲一个类似的题目,心中当时有点忐忑,最大的顾虑就是要讲的领域更他重叠,如果他讲得更深入,我就没必要班门弄斧了。后来考虑到以下几个原因还是决定继续

  • Twitter架构是单IDC设计,从它递增的tweet id就可以看出,后来当面向@nk提问也得到了证实。
  • 中美网络环境差异,单IDC和多IDC有很多设计上的不同
  • 大部分参会人员未必能对英文演讲有深入理解及感悟,中文的演讲可以讲一些细节解释更透彻。
  • Twitter对故障的容忍度大,国内公司对服务故障通常更敏感。因此国内架构师会考虑设计方案尽量简单可靠,服务需要更稳定。国外开发团队更倾向追求在工作中应用技术创新,因此会导致架构设计理念的不少差异。

演讲的slide如下,登录slideshare之后可以下载。

在线PPT查看:http://www.slideshare.net/iso1600/build-scalable-microblog-qcon-beijing-2010

这里再补充在qcon演讲未来得及考虑成熟的一个方面,用户规模影响设计,具体是指用户数每上一个数量级,许多设计需要重新考虑。

10万用户级别

  • 单服务器,前端、后端、cache、db在一起。

百万级

  • db和cache单独部署服务器,db或按业务进行拆分(sharding)
  • cache或使用一致性hash扩展。
  • 前端后端还是在一起,但是根据业务拆分,每个业务可分配不同数量的服务器

千万级

  • 开始重视架构设计,有专门技术架构师
  • 需跨机房部署,前端在远程增加反向代理加速,数据库在异地机房使用slave数据库副本
  • 后端拆分出来,系统内部需要远程调用,内部需远程调用协议。

亿级

  • 架构更细分,或增加数据架构师,cache架构师,分布式架构师
  • 数据库sharding碰到烦恼,开始考虑分布式数据服务
  • 数据访问需要根据业务特点细分。
  • 开发、运维、测量、调优具备有自己的专有工具。
  • 所有服务需要地理多机房分布,具备IDC容灾设计。
  • 服务可降级

上面的数字仅供理解“用户规模影响设计”,数字本身并无具体指导价值。

另外在slide中也提到了,目前新浪微博团队急需人才,对上面相关技术领域感兴趣的架构师及各层次开发人员(熟悉PHP,Java, C或数据架构任意一种)可随时跟我联系,工作地点为北京,联系方式见博客首页。

分享到:
评论

相关推荐

    QCon 北京 2010大会演讲之:构建可扩展微博架构,演讲者:Tim Yang,新浪微博技术架构师

    【构建可扩展微博架构】 微博,作为社交媒体的一种形式,与传统的博客有着显著的不同。博客主要以长篇内容的形式存在,用户可以发表、浏览和留言,其背后的技术通常基于LAMP(Linux, Apache, MySQL, PHP)架构,...

    互联网公司技术架构资料.新浪微博.构建可扩展微博架构.pdf

    《构建可扩展微博架构》是关于互联网公司技术架构的一个重要话题,主要针对的是新浪微博的案例。这个架构设计的核心目标是确保系统的高可用性、可扩展性和实时性,以应对大规模用户产生的海量数据和高并发访问。 1....

    微博.构建可扩展的微博架构_TimYang_QCon_Beijing_2010.pdf

    【构建可扩展的微博架构】 微博作为一种实时信息分享平台,其技术架构与传统的博客系统有显著差异。博客主要关注用户发表、浏览和留言功能,通常采用LAMP(Linux、Apache、MySQL、PHP)架构,利用MySQL主从复制、...

    互联网公司技术架构资料.新浪微博.构建高性能的微博系统

    《构建高性能的微博系统》是针对互联网公司技术架构的一份重要参考资料,特别是以新浪微博为案例进行深入剖析。本文将从以下几个方面详细阐述该主题: 1. 微博系统的整体架构设计:高性能的微博系统通常采用分布式...

    新浪微博混合云架构应用实践之路.pdf

    此外,微博还需要应对诸如明星八卦等突发事件所带来的流量激增,这类事件具有不可预测性,且持续时间较短,使得传统的资源扩展方式难以适应。 #### 二、混合云DCP平台演进 为了解决上述问题,微博采取了混合云策略...

    .新浪微博.构建高性能的微博系统

    在当今快速发展的互联网环境中,构建一个高性能、可扩展的微博系统是至关重要的。新浪微博作为中国领先的社交媒体平台之一,其技术架构经历了多次迭代与优化,旨在为用户提供高效稳定的服务体验。本文将深入探讨新浪...

    互联网公司技术架构

    互联网公司技术架构资料.百度.海量日志分析架构 互联网公司技术架构资料.百度....互联网公司技术架构资料.百度....互联网公司技术架构资料....构建可扩展微博架构 互联网公司技术架构资料.新浪微博.微博架构与平台安全

    互联网公司技术架构新浪微博.zip

    微博系统的稳定性和性能直接影响到用户体验,因此,构建高性能、可扩展的微博架构是互联网公司面临的核心挑战。本文将深入探讨新浪微博的技术架构,分析其如何实现高并发处理、数据存储与检索、以及平台安全。 一、...

    新浪微博架构与平台安全PPT学习教案.pptx

    《新浪微博架构演进与平台安全》的PPT学习教案详细阐述了新浪微博的技术发展历程,从最初的LAMP架构到复杂的分布式服务架构。以下是对其中关键知识点的深入解析: 微博系统的核心是解决用户发表和订阅的问题,最初...

    微博架构与平台安全

    理想的分布式存储系统应具备海量规模、可扩展性、高性能、低延迟和高可用性。微博的分布式方案借鉴了Yahoo! Message Broker,通过消息广播实现数据多地分布。 在平台安全方面,面对开放接口带来的恶意行为,如垃圾...

    swift-第三方新浪微博客户端

    "swift-第三方新浪微博客户端"项目就是这样一个示例,它展示了如何利用Swift构建一个设计简约且功能全面的微博浏览应用。这个项目名为"OnionWeibo",暗示其层次分明、逐层深入的设计理念,同时也可能是寓意其具有...

    aspnet 仿新浪微博系统

    ASP.NET是微软公司推出的一种基于.NET Framework的服务器端网页开发框架,它为构建高性能、可扩展的Web应用提供了强大的支持。本项目“aspnet 仿新浪微博系统”则是一个使用ASP.NET技术实现的微型博客平台,其核心...

    互联网公司技术架构系列资料-新浪.百度.腾讯.淘宝

    构建可扩展微博架构.pdf"则关注于系统的可扩展性,涉及到了负载平衡、服务发现、容错机制等关键元素,以支持不断增长的用户需求。 最后,"腾讯.集中式IT系统的技术架构.pdf"揭示了腾讯如何构建和管理大型的集中式IT...

    仿新浪微博php程序xweibo

    新浪微博类应用涉及到大量的用户数据存储和检索,XWeibo可能会使用MySQL或其他关系型数据库系统,进行用户注册、登录、发布动态等操作。这需要开发者熟悉SQL语言,以及PHP与数据库的交互方式,如PDO或mysqli扩展。 ...

    微博系统 aspx C#

    ASP.NET是由微软开发的Web应用程序框架,它提供了丰富的功能和工具,用于构建高效、可扩展的Web应用。 【描述】"微博系统 微博系统 aspx C#微博系统 aspx C#微博系统 aspx C#微博系统 aspx C#" 描述中的重复表明该...

    timyang新浪微博设计

    通过对微博的Feed架构和缓存设计的深入分析,我们可以了解到如何构建一个高性能、可扩展的微博系统。无论是Push还是Pull模型,还是各种缓存策略的应用,都是为了更好地服务于用户,提供快速、流畅的用户体验。在未来...

    互联网公司技术架构微博.zip

    1. **服务化架构**:通过将大系统拆分成微服务,每个服务独立部署,增强系统的可扩展性和可维护性。 2. **分布式计算和存储**:利用分布式数据库和NoSQL存储来处理大量数据,并保证高可用性和高性能。 3. **缓存技术...

    php微博系统

    2. **e-say微博系统需求分析书.doc**:文档阐述了微博系统的需求,包括功能需求(如用户注册、登录、发微博、浏览他人微博等)和非功能需求(如安全性、可用性、可扩展性等)。它是项目开发的起点,明确了系统应具备...

    微博开发源码新浪微博

    这需要高效且可扩展的数据存储方案。可能采用MySQL作为主数据库存储结构化数据,而HBase或Cassandra用于存储海量的非结构化数据,如文本内容和图片链接。同时,为了提高查询效率,可能会使用Elasticsearch进行全文...

    开源php微博系统sharetronix2.0

    Sharetronix是一款基于PHP语言开发的开源微博系统,专为构建类似Twitter或新浪微博的社交网络平台而设计。它提供了丰富的功能和高度可定制性,使开发者能够快速搭建属于自己的微型博客服务。Sharetronix 2.0作为最新...

Global site tag (gtag.js) - Google Analytics