在使用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或数据架构任意一种)可随时跟我联系,工作地点为北京,联系方式见博客首页。
相关推荐
互联网公司技术架构资料.新浪微博.构建可扩展微博架构
这是2010年4月24日新浪微博架构师Tim Yang在 QCon 北京大会上演讲的PPT,在该PPT中可以看到整个新浪微博采用的架构现状,所面对的挑战,以及相应的解决思路。
此资源包含了新浪微博架构的一些演讲视频地址和配套PPT文件,以及对应的一些博客地址。 新浪微博开放平台中的...微博架构与平台安全_构建高性能的微博系统——再谈新浪微博架构 演讲视频,PPT,一些收集的博客地址等
微博.构建可扩展的微博架构_TimYang_QCon_Beijing_2010.pdf
新浪微博构建高性能的微博系统、新浪微博构建可扩展的微博架构、微博架构与平台安全性。
应用模式构建企业应用架构---UML软件工程组织-火.ppt
软件架构的新思路,不同于传统的架构,模式方面,值得借鉴和学习.
互联网公司技术架构资料.新浪微博.构建高性能的微博系统
互联网公司技术架构资料.百度.海量日志分析架构 互联网公司技术架构资料.百度.数据库架构演变与设计 互联网公司技术架构资料....构建可扩展微博架构 互联网公司技术架构资料.新浪微博.微博架构与平台安全
互联网公司技术架构资料.新浪微博.构建高性能的微博系统
高可靠性:MySQL是一种成熟的关系型数据库管理系统,凭借其稳定性和可靠性得到了广泛的应用。它提供了强大的数据冗余、事务支持和备份恢复功能,确保数据的安全性和完整性。通过使用MySQL作为存储引擎,该项目能够...
开源技术构建 Web App 架构-Paracutin-豌豆荚
大数据系统构建:可扩展实时数据系统构建原理与最佳实践
构建安全可靠的系统-谷歌(最终版) 数据分析
构建可扩展的方案:通过AKF扩展立方识别扩展需求,选择最佳的解决方法,并借助缓存、应用和数据库划分以及异步设计等优化系统性能。 利用新兴的技术,如云和网格,实现扩展。 构建有效的监控策略,及时回答最重要的...
构建可扩展的方案:通过AKF扩展立方识别扩展需求,选择最佳的解决方法,并借助缓存、应用和数据库划分以及异步设计等优化系统性能。 利用新兴的技术,如云和网格,实现扩展。 构建有效的监控策略,及时回答最重要的...
构建可扩展的方案:通过AKF扩展立方识别扩展需求,选择最佳的解决方法,并借助缓存、应用和数据库划分以及异步设计等优化系统性能。 利用新兴的技术,如云和网格,实现扩展。 构建有效的监控策略,及时回答最重要的...
构建可扩展的方案:通过AKF扩展立方识别扩展需求,选择最佳的解决方法,并借助缓存、应用和数据库划分以及异步设计等优化系统性能。 利用新兴的技术,如云和网格,实现扩展。 构建有效的监控策略,及时回答最重要的...
互联网公司技术架构资料.百度.海量日志分析架构 互联网公司技术架构资料.百度.数据库架构演变与设计 互联网公司技术架构资料.百度.贴吧架构实践 互联网公司技术架构资料....技术架构介绍 ...构建高性能的微博系统