【问题标题】:How to design a scalable twitter like service?如何设计一个可扩展的类似推特的服务?
【发布时间】:2010-05-26 19:32:45
【问题描述】:

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

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

  • 我知道他们使用消息队列。但是他们到底用队列做什么呢?

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

  • 与上述几点相关:他们如何按推文发件人、推文关注者、推文 ID、推文日期时间或其他方式对数据进行分片?

  • 你知道他们使用什么技术吗?我阅读了有关 MySQL、RoR、Starling、Scala、memcached 的信息。不过那是前一阵子了,资料也不是很详细。有任何更新信息或更多详情吗?

【问题讨论】:

标签: architecture twitter scalability message-queue sharding


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    不确定这是否会有所帮助。 Twitter 已经在Twitter Open Source 页面上开源了很多在服务上使用的代码,这可能会给你一两个关于正在做什么的提示。

    此外,Twitter 有一个 Engineering Blog,他们在其中发布了有关 Twitter 中使用的技术的帖子

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-25
      • 1970-01-01
      • 1970-01-01
      • 2023-03-03
      • 1970-01-01
      • 2010-10-19
      • 2013-11-06
      • 2016-01-25
      相关资源
      最近更新 更多