Architecture 如何设计一个可伸缩的类似twitter的服务?

Architecture 如何设计一个可伸缩的类似twitter的服务?,architecture,twitter,scalability,message-queue,sharding,Architecture,Twitter,Scalability,Message Queue,Sharding,有人知道twitter的架构吗 我特别感兴趣的几个具体项目: 我知道他们使用消息队列。但他们使用队列到底是为了什么 他们是否“复制”推文?如果是,怎么做?例如,假设一个用户有10000个追随者,他发了一条推特“hello world”。推特是否只存储“hello world”一次,而这10000名关注者中的每个人都需要从同一数据库表中读取该推文,或者每个关注者都有自己的“我正在关注的推文”数据,并且“hello world”被复制10000次,每个关注者一次 与上面的观点有些关联:他们如何通过

有人知道twitter的架构吗

我特别感兴趣的几个具体项目:

  • 我知道他们使用消息队列。但他们使用队列到底是为了什么

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

  • 与上面的观点有些关联:他们如何通过推特发送者、推特关注者、推特ID、推特日期时间或其他方式共享数据

  • 你知道他们使用什么技术吗?我读过MySQL、RoR、Starling、Scala和memcached。但那是很久以前的事了,信息也不是很详细。有更新的信息或更多详细信息吗


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

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

此外,Twitter有一个网站,他们在那里发布了关于Twitter中使用的技术的帖子