The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

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

13.03.2011 22:44

В статье представлено обобщение доступных материалов об организации работы проекта 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.

  1. Главная ссылка к новости (http://www.insight-it.ru/massh...)
  2. OpenNews: Проект Twitter представил раздел, посвященный своим открытым разработкам
  3. OpenNews: Часть Twitter переводят с языка Ruby на Scala
  4. OpenNews: Рассказ об использовании open source разработок для обеспечения работы Twitter
  5. OpenNews: Обзор архитектуры Twitter.com, работающего на Ruby on Rails
Автор новости: Иван Блинков
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/29897-Twitter
Ключевые слова: Twitter
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (12) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, k0l0b0k (??), 10:20, 14/03/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    >Инфраструктуру проекта обслуживает более тысячи серверов
    >Базовые составляющие интерфейса Twitter написаны с использованием Ruby (используется REE) и Ruby on Rails, для реализации некоторых внутренних систем и обработчиков API используется язык Scala.

    а вот написали бы на C++, и твиттер был бы более экологически чистый.

     
     
  • 2.7, Аноним (-), 11:17, 14/03/2011 [^] [^^] [^^^] [ответить]  
  • +5 +/
    > а вот написали бы на C++, и твиттер был бы более экологически
    > чистый.

    А вот начали бы писать на С++, может к 2015 году и ввели бы сайт в строй, а к 2020 отладили бы. А потом оказалось бы, что все нужно переписывать, так как решение не масштабируется под десятикратный рост аудитории в год.

     
     
  • 3.10, Карбофос (ok), 12:38, 14/03/2011 [^] [^^] [^^^] [ответить]  
  • –2 +/
    бред какой-то несёте...
     
  • 3.13, User294 (ok), 14:11, 14/03/2011 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > так как решение не масштабируется под десятикратный рост аудитории в год.

    Ага, пых масштабируется, а плюсы - нет :). А чем они так принципиально отличаются? И какого хрена книгоморда юзает компилежку php -> C++ -> native code? Или у книгоморды проблемы с масштабируемостью, а у твиттера их нет?
      

     
     
  • 4.17, yelbota (?), 15:54, 14/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    LLVM там.
     
  • 2.22, Анонима (?), 19:47, 15/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    На правах выдёргивания из контекста:
    "Реализован этот механизм простым bash-скриптом, который просматривает агрегированные логи за последние 60 секунд, подсчитывает количество китов/роботов..."

    facepalm.jpg

     

  • 1.3, Аноним (-), 10:28, 14/03/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    И все-равно периодически твиттер очень медленный... Периодически не открываются списки фолловеров (если их действительно много), и прочее. Твиттер удобно юзать только с помощью клиентов. Через веб юзать долго, тормозно и хлопотно.
     
     
  • 2.6, Аноним (-), 11:05, 14/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Вы хотите сказать клиенты подключаются к какой-то особой быстрой базе данных?
     
     
  • 3.8, Аноним (-), 11:20, 14/03/2011 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Напрямую к БД - так будет точнее. Когда это скрипты могли работать в реалтайме?
     
  • 3.11, бедный буратино (ok), 13:10, 14/03/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    У Обамы и Медведева - правительственный коннект, с мигалками и охраной.
     
     
  • 4.14, User294 (ok), 14:13, 14/03/2011 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > с мигалками и охраной.

    Так вот ты какой, QoS + SSL...

     
  • 2.12, Aqueelone (?), 13:56, 14/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Ну же написано про сервер приложений Unicorn.
    Цитата с Unicorn (http://unicorn.bogomips.org/):
    Unicorn is an HTTP server for Rack applications designed to only serve fast clients on low-latency, high-bandwidth connections and take advantage of features in Unix/Unix-like kernels. Slow clients should only be served by placing a reverse proxy capable of fully buffering both the the request and response in between Unicorn and slow clients.
    ----
    То есть --- сие только для быстрых клиентов с минимальными задержками и толстыми каналами.
    Если Вы не такой...
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру