• Feeds

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

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

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

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

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

    10万用户级别

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

    百万级

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

    千万级

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

    亿级

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

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

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

    如想及时阅读Tim Yang的文章,可通过页面右上方扫码订阅最新更新。

    « | »

    35 Comments  »

    1. 非常好的技术分享。
      文中日期应该是笔误啊“QCon Beijing 21010年”,太超前了,:)

    2. Vincent

      这些演讲都没有视频或者录音么
      我觉得主办方要是弄一下就好了

    3. 多谢分享,学习~

    4. jarfield

      多谢楼主分享!

      PPT的第11页可能是个笔误:
      查看:所有关注对象Inbox(重) => 查看:所有关注对象Outbox(重)

    5. Tim

      @jarfield 你说得对。

    6. brightman

      问几个问题:
      1.新浪微博是push方式?采用MQ去push?
      2.删掉关注对象后,也会删除push的内容?
      3.push策略?有选择的push?先push热点?名人?活跃用户?
      4.twitter是push or pull?
      3ks

    7. 这周六,在杭州有个阿里巴巴的的关于架构方面的技术交流会,我去听听,如果有收获,也在这里留个言啊。

    8. 这个有视频地址吗,想边听边看。。。。。

    9. 我们的模块设计上要去状态,我们任意一个单元可以支持任意节点。

      去中心化,这个容易理解,不过去状态就不理解了,感觉貌似跟去中心差不多,可以帮忙解释一下吗?thx~

    10. I’d like to withdraw $100, please 12-14 teen models 0417

    11. I’ve been made redundant max4 teen bbs bptoj

    12. Could you ask him to call me? imageboard jp preteen >:-(

    13. wangyao

      ppt第22页,get和set写反了。

    14. With 2 dogs and 2 cats I try to save as much as possible on their food and toys. I will usually email the company and tell them how much there product is loved and they will send you coupons also get toys at the dollar store or make them my dogs love anything that crunches or sweaks so I used the empty 2 liter bottles or water bottles with wet dog food th;&t#8217as frozen so they have to figure out how to get there treat while they get there fix of something that crinkles.

    15. Hachimura Kou, a mixed-race player from Japan, has gained a foothold in the NBA and signed with Jordan Brand after two seasons of experience.

    Leave a Comment