architecture - 如何设计可扩展的类似 twitter 的服务?

原文 标签 architecture twitter scalability message-queue sharding

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

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

  • 我知道他们使用消息队列。但是他们究竟用队列做什么呢?
  • 他们“复制”推文吗?如果是这样,如何?例如,假设一个用户有 10,000 个关注者,他发了一条推文“hello world”。 twitter 是否只存储“hello world”一次并且这 10,000 个关注者中的每一个都需要从同一个数据库表中读取该推文,还是每个关注者都有自己的“我正在关注的推文”数据并且“hello world”被复制 10,000次,每个追随者一次?
  • 与上述观点有些相关:他们如何通过推文发送者、推文关注者、推文 ID、推文日期时间或其他方式对数据进行分片?
  • 你知道他们使用什么技术吗?我读过 MySQL、RoR、Starling、Scala、memcached。但那是前一段时间,信息不是很详细。任何更新的信息或更多细节?
  • 最佳答案

    您可以查看 identi.ca 中的代码,这是一项类似于 Twitter 的服务,基于开源工具和开放标准构建。希望这可以帮助。

    关于architecture - 如何设计可扩展的类似 twitter 的服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2912297/

    相关文章:

    linux - 如果许多套接字连接处于TIMEWAIT状态,是否会影响服务器的性能?

    search - IMDB搜索如何如此快速地工作?

    javascript - 如何将python脚本作为服务器与python和javascript应用作为客户端连接?

    php - 不使用MySQL的资源ID#3

    c# - 我们如何避免冗余接口(interface)的实现?

    php - JSON持久性/DOM

    twitter - 获取服务的公共(public)用户(Tumblr,Twitter)

    ruby-on-rails - Ruby on Rails 可扩展性/性能?

    python - Django-如何可视化信号并保存替代?

    ios - '无效的位码版本(生产者 : '902.0.39.2_0' Reader: '900.0.37_0' )'