@theaidem

Какой выбрать фреймворк для высоконагруженного Python web-приложения?

Здравствуйте, на стадии проектирования сервис, который по самым смелым подсчетам должен свободно себя чувствовать при десятках тысяч посетителей единовременно, основное это общение юзеров в личных сообщениях (нет, это не очередная соц. сеть), но принцип мгновенного обмена сообщениями + аякс нотификации при входящих будет (должен быть).

В настоящий момент приоритет использования фреймворков следующий:
1. Tornado (за асинхронность).
2. Flask (за легкость).
3. Django (за скорость разработки).
Базу данных в планах использовать MongoDB (за шустрость).
JS'ом манипулировать с AngularJS (за модность/гибкость).

В общем от вас нужен совет, что выбрать что-бы потом вдруг голова с попой не зачесалась когда сервис получит жизнь, Tornado или таки Flask?
Спасибо.
  • Вопрос задан
  • 9415 просмотров
Решения вопроса 1
maxaon
@maxaon
nichol.as/benchmark-of-python-web-servers
Gevent если надо очень шуструю работу. Django если надо быстро разработать.
И 10 раз подумайте перед тем как использовать MongoDB.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@Slko
C++/C#/Python Developer
Flask по тестам более производительный. Единственное, что очень сильно меня смутило - проблемы с доменами, если расположить Flask за nginx. Так и не разобрался, как объяснить ему, что он запущен по тому адресу, на котором запущен nginx. Он был убеждён, что запущен на localhost:81 и все редиректы шли туда.

В этом плане больше понравился Tornado, он более гибкий и можно организовать какую угодно структуру поддоменов. Проблемы были только с отсутствием человеческой документации по асинхронным обработчикам запросов.

На Django даже не смотрел. Он там всё ещё не поддерживает Python 3.x? Не было желания его изучать хотя бы чтобы не поддерживать устаревшие технологии. Да и какой-то он мейнстримно-быдлокодерский.

Но, наверное, Tornado и Flask подойдут скорее для небольших проектов. Или для больших, но с основательной проработкой архитектуры. Это неправильный выбор будет для быстрого клепания сайтов в какой-нибудь небольшой фирмочке.

Раньше я тоже применял MongoDB, простота запросов и отсутствие необходимости описывать структуру данных очень привлекала. К тому же данные очень хорошо ложились в обычные питоновские типы. В конечном итоге перешёл на MySQL + SQLAlchemy. Отсутствие нормальных транзакций в MongoDB вызывало очень большие неудобства. Костыли, которые предлагались взамен, были слишком громоздкими и трудными для понимания.
Ответ написан
@AlexWinner
А на PostgreSQL не хотите посмотреть? Всё таки его skype, instagram используют с удовольствием. И подводных камней встретите меньше, чем в Mongo.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы