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

标签 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。不过那是前一阵子了,资料还不是很详细。有更新的信息或更多详细信息吗?

最佳答案

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

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

相关文章:

python - 在 JSON/Python 中删除 twitter 扩展推文列的不必要的详细信息

python - 如何使用 python 保存乌尔都语推文并保存在 csv 文件中

mysql - 为什么我在写入 300KB/sec 时绑定(bind)了 I/O 以写入 MySQL?

PHP - 扩展、库与类 - 何时以及为何

asp.net-mvc - MVC DDD : Is it OK to use repositories together with services in the controller?

twitter - 根据相似性对标签进行分类

.net - 您是否应该请求 .NET 中的锁定超时?

architecture - Docker 容器粒度 : SOA or monoliths?

architecture - 客户定制

database - 万维网最大的网站运行在哪些数据库上?