Architecthure для большого сайта, управляемого данными - PullRequest
4 голосов
/ 03 августа 2010

Я знаю, как создавать небольшие веб-сайты, управляемые данными, но хочу получить представление о том, как преобразовать их для обработки большого потока данных.

Вопросы основаны на сайте, который будет действовать в основном как переполнение стека, список рассылки и т. Д., Где люди могут публиковать материалы, а другие будут отвечать, и будут иметь базовые возможности поиска на основе тегов.

  1. Достаточно ли сильны обычные реляционные базы данных, такие как SQL-сервер, Oracle и т. Д., Чтобы поддерживать чтение и запись большого количества данных?

  2. Если мой сайт размещен на отдельном выделенном сервере, какой объем трафика в целом можно ожидать?

  3. Существуют ли общие правила проектирования или проблемы, которые необходимо учитывать при создании приложений среднего и большого уровня?

Ответы [ 4 ]

4 голосов
/ 03 августа 2010
  1. При хорошей стратегии кэширования и хорошо написанных SQL-операторах достаточно любой СУБД.

  2. Краткий ответ зависит . На эту тему есть хорошее обсуждение здесь .

  3. Я бы посоветовал вам начать с рассмотрения этого поста . Простое следование основным методам кодирования поможет сделать ваш код более расширяемым.

2 голосов
/ 03 августа 2010
  1. Да, но пишите свои запросы с умом и используйте кеширование.
  2. Зависит от аппаратного обеспечения, ОС и веб-сервера.
  3. Выезд 3-х уровневая архитектура .
1 голос
/ 03 августа 2010

Re # 2: Используйте Siege или любой соответствующий инструмент веб-тестирования - Apache ab, perfmon и shell-скрипты - все, что может выбить из сервера и сообщить об этом (Siege действует немного больше как реальные пользователи, очень рекомендую это). Вы сможете получить некоторые реальные показатели того, что ваш сервер может обработать до того, как он утонет, в реальном масштабе времени: количество запросов в секунду, число одновременных пользователей, время отклика, использование полосы пропускания и т. Д.

Конечно, это не очень поможет, когда вы находитесь только на этапе проектирования. В этом случае установите несколько веб-приложений OSS с похожими концепциями и вначале забейте их. Это будет только приблизительная оценка, поскольку существует так много переменных, но все же лучше, чем вытаскивать числа из воздуха.

0 голосов
/ 03 августа 2010

Ну, два других человека уже опередили меня по поводу кеширования и запроса SQL.Еще я бы порекомендовал использовать AJAX и проверку на стороне клиента, чтобы уменьшить количество полных загрузок страниц и обратных передач сервера.

...