Архитектура Twitter

В статье представлено обобщение доступных материалов об организации работы проекта Twitter, входящего в десятку самых популярных сайтов в мире. Ежесекундно в Twitter публикуется около тысячи заметок и просматривается около 1.2 млн, число запросов к API составляет приблизительно 70 тысяч в секунду (6 миллиардов запросов к API в день). Инфраструктуру проекта обслуживает более тысячи серверов. Базовые составляющие интерфейса Twitter написаны с использованием Ruby (используется REE) и Ruby on Rails, для реализации некоторых внутренних систем и обработчиков API используется язык Scala.

Для работы с БД задействованы MySQL, Apache Cassandra, FlockDB (распределенная БД, ориентированная на хранение графов) и Hadoop. В качестве http-сервера используется Apache (mod_proxy) и сервер приложений Unicorn, которые работают под прикрытием балансировщиков нагрузки и прокси (например, cachet). В проекте также используются: система кэширования memcached, система организации обработки слабо упорядоченных очередей сообщений Kestrel, высокомасштабируемый сервер для сбора и агрегации логов scribe.

Полный текст статьи читайте на OpenNet