Компания Facebook открыла под лицензией Apache исходные тексты проекта Tornado - высокопроизводительного фреймворка для создания на языке Python web-серверов, обрабатывающих запросы в неблокирующем режиме. Tornado на стандартом оборудовании справляется с нагрузкой в тысячи одновременных соединений, что делает его идеальным решением для web-сервисов, обслуживающих запросы в реальном режиме времени.
Tornado предоставляет возможности схожие с Python фреймворками Django, Google webapp и web.py, но нацелен в первую очередь на скорость работы. Tornado перешел в собственность Facebook после приобретения FriendFeed - агрегатора информации из различных социальных сетей, блогов, микроблогов и прочих сервисов, работающего в реальном времени. В Tornado имеется поддержка Django шаблонов, средств для работы с верифицированными cookie, механизмов аутентификации, локализации, возможностей для агрессивного кэширвоания статических компонентов страниц, встроенной защиты от CSRF-атак.
Измерение производительности, проведенное на сервере с четырехядерным CPU AMD Opteron 2.4 GHz, показало, что Tornado (4 процесса) в связке с nginx сумел обработать 8213 запросов в секунду, а в обособленном режиме (один процесс) - 3353 запросов в секунду. В той же конфигурации аналогичное приложение на Django (Apache + mod_wsgi) смогло выполнить 2223 запросов в секунду, web.py - 2066, CherryPy - 785.
|