Что бы вы порекомендовали для веб-сайта с интенсивным использованием ajax с высоким трафиком?


Для такого веб-сайта, как reddit, с большим количеством голосов вверх/вниз и большим количеством комментариев по каждой теме, что мне следует выбрать?

Lighttpd/Php или Lighttpd/Вишневый/Генши/SQLAlchemy?

И для базы данных, что будет масштабироваться лучше/быстрее MySQL (4.1 или 5? ) или PostgreSQL?

Author: John Topley, 2008-10-15

5 answers

Я не могу ответить на вопрос MySQL/PostgreSQL, так как у меня ограниченный опыт работы с Postgres, но мой исследовательский проект был посвящен высокопроизводительным веб-сайтам с CherryPy, и я не думаю, что вы будете разочарованы, если будете использовать CherryPy для своего сайта. Он может легко масштабироваться до тысяч одновременных пользователей на обычном оборудовании.

Конечно, то же самое можно сказать и о PHP, и я не знаю никаких разумных критериев, сравнивающих производительность PHP и CherryPy. Но если бы ты был задаваясь вопросом, может ли CherryPy обрабатывать сайт с высоким трафиком с огромным количеством запросов в секунду, ответ определенно да.

 8
Author: Eli Courtwright, 2008-10-15 14:11:29

Идеальная настройка была бы близка к этой:

caching

Короче говоря, nginx - это быстрый и легкий веб-сервер/прокси-сервер с уникальным модулем, который позволяет ему извлекать данные непосредственно из хранилища оперативной памяти memcached, не нажимая на диск или какое-либо динамическое веб-приложение. Конечно, если URL-адрес запроса еще не был кэширован (или если срок его действия истек), запрос отправляется в веб-приложение как обычно. Гениальная часть заключается в том, что, когда веб-приложение сгенерировало ответ, его копия отправляется в memcached, готовая к повторному использованию.

Все это прекрасно применимо не только к веб-страницам, но и к запросам/ответам AJAX.

В статье "обратными" серверами являются http, и конкретно говорится о дворняге. Было бы еще лучше, если бы сзади были FastCGI и другие (более быстрые?) фреймворки; но это намного менее критично, так как команда nginx/memcached поглощает большую часть нагрузки.

Обратите внимание, что если ваша схема URL-адресов для трафика AJAX хорошо разработана (ОТДЫХ лучше всего, ИМХО), вы можете поместить большую часть базы данных прямо в memcached, и любая запись (которая будет передана в приложение) может предварительно обновить кэш.

 8
Author: Javier, 2017-02-08 14:08:40

Что касается вопроса о БД, я бы сказал, что PostgreSQL масштабируется лучше и обладает лучшей целостностью данных, чем MySQL. Для небольшого сайта MySQL может быть быстрее, но, насколько я слышал, он значительно замедляется по мере увеличения размера базы данных. ( Примечание: Я никогда не использовал MySQL для большой базы данных, поэтому вам, вероятно, следует получить второе мнение о ее масштабируемости.) Но PostgreSQL определенно хорошо масштабируется и будет хорошим выбором для сайта с высоким трафиком.

 3
Author: Bruce Alderman, 2008-10-15 16:31:15

Потребуется больше данных. У Джеффа было несколько статей по тем же проблемам, и ответом было подождать, пока вы не столкнетесь с проблемой производительности.

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

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

Как только у вас будет лучшее представление о требованиях к данным и потоке - тогда работайте над дизайном базы данных. есть много правил, которым нужно следовать, но одно из лучших - следовать правилам нормализации (да, я парень из бд, почему?)

Теперь у вас есть пара страниц для сборки - запустите свои тесты. у тебя какие-то проблемы? Да, теперь посмотрите, что это такое. Обслуживание страниц или подтягивание базы данных? Измерьте, а затем выберите план действий.

 2
Author: jim, 2008-10-15 14:11:42

Я бы выбрал nginx + php + xcache + postgresql

 2
Author: ping, 2008-10-28 20:54:21