Опции веб-сервера Python с неблокирующей архитектурой - PullRequest
2 голосов
/ 06 мая 2011

Я ищу неблокирующую среду веб-сервера на основе Python, которая предназначена для обработки большого количества одновременных подключений и реагирования на большие нагрузки ( C10K ). Мне нужно это как бэкэнд для моего веб-приложения. В типичном сценарии клиент веб-приложения будет совершать несколько звонков на сервер с помощью WebSockets.

Пока я нашел 2 варианта в питоне.

За пределами python, конечно, есть node.js, но я бы предпочел среду программирования на python, если это возможно.

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

Меня беспокоит то, что, хотя оба вышеперечисленных проекта, похоже, пользуются хорошей поддержкой сообщества, они не так популярны, как Django, CherryPy, Pylon и т. Д. Поэтому я боюсь сделать выбор, который в будущем может оказаться плохим.

Ответы [ 2 ]

4 голосов
/ 06 мая 2011

Как один из разработчиков ядра Twisted, я настоятельно рекомендую вам использовать Twisted.:)

Во-первых, потому что это отличная библиотека с командой разработчиков , приверженной высококачественному программному обеспечению .Twisted обладает чрезвычайно широким набором функциональных возможностей, начиная от (хорошо работающий) простой веб-сервер и заканчивая интеграцией с базой данных (либо на основе потоков на самом Twisted, либо без потоков в txmysql или txpostgres (распространяется отдельно) для поддержки других протоколов, таких как FTP, DNS, XMPP, SMTP и многих, многих других.Да, даже WebSockets .

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

В-третьих, потому что существуетбольшое, активное сообщество, которое не будет уходить в ближайшее время, которое предлагает множество вариантов поддержки.Если объединить список рассылки, IRC-канал и стекопоток, нет недостатка в способах получения помощи.

3 голосов
/ 06 мая 2011

Есть еще хорошие варианты.Вы должны проверить очень хороший обзор асинхронных серверов Python Николаса Пиля.

...