如何设计可扩展的Twitter类服务?

时间:2010-05-26 11:06:09

标签: architecture twitter scalability message-queue sharding

有没有人有关于Twitter架构的任何信息?

我特别感兴趣的一些具体项目:

  • 我知道他们使用消息队列。但究竟他们​​究竟使用队列?

  • 他们是否“重复”推文?如果是这样,怎么样?例如,假设一个用户有10,000个粉丝,他发了一条推文“hello world”。 twitter只存储一次“hello world”,并且这些10,000个粉丝中的每一个都需要从同一个数据库表中读取该推文,或者每个粉丝都有他自己的“我正在关注的推文”数据和“hello world”重复10,000个时间,每个追随者一次?

  • 与上述内容有些相关:他们如何通过推文发件人,推文关注者,推文ID,推文日期时间或其他方式对数据进行分类?

  • 您知道他们使用的技术吗?我读到了MySQL,RoR,Starling,Scala,memcached。但那是一段时间以前,信息不是很详细。任何更新的信息或更多细节?

2 个答案:

答案 0 :(得分:4)

您可以查看identi.ca中的代码,这是一种类似于Twitter的服务,建立在开源工具和开放标准之上。希望这会有所帮助。

答案 1 :(得分:1)

不确定这是否有帮助。 Twitter在Twitter Open Source页面上开源了大量正在使用的代码,这可能会给你一些关于正在做什么的提示。

此外,Twitter有一个Engineering Blog,他们在Twitter上有关于技术的帖子