Как создать масштабируемый сервис, похожий на твиттер? - PullRequest
3 голосов
/ 26 мая 2010

У кого-нибудь есть информация по архитектуре твиттера?

Несколько конкретных предметов, которые меня особенно интересуют:

  • Я знаю, что они используют очереди сообщений. Но для чего именно они используют очереди?

  • Они "дублируют" твиты? Если так, то как? Например, скажем, у пользователя есть 10000 подписчиков, и он делает твит "привет, мир". Сохраняет ли твиттер «hello world» только один раз, и каждому из этих 10000 подписчиков потребуется прочитать этот твит из одной и той же таблицы базы данных, или каждый подписчик имеет свои собственные данные «твиты, за которыми я слежу», а «hello world» дублируется 10000 раз, один раз для каждого последователя?

  • В некоторой степени относится к вышеприведенному пункту: как они ограждают свои данные, отправителем твита, подписчиком твита, идентификатором твита, датой времени твита или чем-то еще?

  • Знаете ли вы, какие технологии они используют? Я читал о MySQL, RoR, Starling, Scala, memcached. Но это было некоторое время назад, и информация не была очень подробной. Любая обновленная информация или более подробная информация?

Ответы [ 2 ]

4 голосов
/ 26 мая 2010

Вы можете проверить код в identi.ca, сервисе, похожем на Twitter, построенном на инструментах с открытым исходным кодом и открытых стандартах. Надеюсь, это поможет.

1 голос
/ 26 мая 2010

Не уверен, поможет ли это. Твиттер с открытым исходным кодом опубликовал много кода, который используется в службе на странице Twitter Open Source , которая может дать вам подсказку или два о том, что делается.

Кроме того, в Твиттере есть Инженерный блог , в котором есть сообщения о технологиях, используемых в Твиттере

...