Когда и как использовать торнадо? Когда это бесполезно?

StackOverflow https://stackoverflow.com/questions/4212877

Вопрос

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

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

Я не мог найти всестороннее объяснение этого, поэтому я спрашиваю это здесь:

  • Когда должен использоваться торнадо?
  • Когда это бесполезно?
  • При использовании его следует учитывать?
  • Как мы можем сделать неэффективно Сайт с использованием торнадо?
  • Есть сервер и веб-кадра. Когда мы должны использовать Framework, и когда мы можем заменить его другим?
Это было полезно?

Решение

Есть сервер и веб-кадра. Когда мы должны использовать Framework, и когда мы можем заменить его другим?

Это различие немного размыто. Только если вы обслуживаете статические страницы, вы бы использовали один из быстрых серверов, таких как LightHTTPD. Другие мудрые, большинство серверов предоставляют различную сложность рамки для разработки веб-приложений. Tornado - хорошая веб-каркас. Скрученный еще более способен и считается хорошей сетью. Он имеет поддержку для многих протоколов.

Tornado и Trusted - это фреймворки, которые обеспечивают поддержку неблокирующим, асинхронным веб / сетевым разработке приложений.

Когда должен использоваться торнадо? Когда это бесполезно? При использовании его следует учитывать?

Это очень природу, async / не блокировка ввода / вывода отлично работает, когда это ввода / вывод, а не вычисляется интенсивно. Большинство веб / сетевых приложений хорошо устраивают для этой модели. Если ваша заявка требует определенной вычислительной интенсивной задачи, которая должна быть выполнена, она должна быть делегирована на некоторую другую услугу, которая может справиться с этим лучше. Хотя торнадо / скрученный может выполнять работу веб-сервера, отвечая на веб-запросы.

Как мы можем сделать неэффективный сайт, используя торнадо?

  1. Сделайте любую вещь вычислительной интенсивной задачей
  2. Ввести блокирующие операции

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

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

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

Другие советы

Прошу прощения за то, что ответил на старый вопрос, но я наткнулся на это и удивлялся, почему у него не было больше ответов. Чтобы ответить на вопрос BART J:

Я хотел бы проанализировать RSS-каналы в приложении Tornado. Считаете ли вы, что довольно вычислительно интенсивно?

Ну, это зависит от того, что вы разбираетесь, и на каком аппаратном обеспечении :) долгое время - это долгое время, поэтому, если ваше приложение занимает более чем сказать пол секунды, чтобы ответить, он появится Sluggish - профиль вашего приложения.

Ключ к быстрой системам является отличная архитектура, не столько специфики, как, например, кадра, которые вы используете (скрученный, торнадо, Apache + PHP). Tornado имеет асинхронный стиль обработки, и это действительно, насколько многое сходит на мой взгляд. Node.js, Twisted и Yaws являются примерами других асинхронных веб-серверов, которые очень хорошо масштабируются из-за легкого подхода и асинхронного стиля обработки.

Так:

Когда должен использоваться торнадо?

Когда это бесполезно?

Tornado Хорошо для обработки много соединений, поскольку он может отвечать на входящий клиент, отправить обработчик запроса и не думай об этом клиенте до тех пор, пока результат-обратный вызов не будет нажиматься на очередь. Таким образом, для этого конкретного качества торнадо следует использовать, когда вы хотите масштабировать хорошо при работе с большим количеством запросов. Обработка ASYNC облегчает функциональное развязку и доступ к данным для передачи данных. Это качели очень хорошо с опасным дизайном, как ОТДЫХ или другой Сервисно-Ориентированная Архитектурас. Вам также не нужно иметь дело с нерестами или процессами с присущими накладными расходами так много, и вы можете сохранить некоторые проблемы с блокировкой / IPC.

Торнадо не будет иметь большую часть разницы, с другой стороны, если ваш магазин Backend и / или Data Data требуется много времени для обработки запросов. Это помогает сделать одновременные конструкции и веб-сервисы в частности. Одновременная архитектура облегчает масштабирование вашего дизайна и держать муфту низкой. Это мой опыт с торнадо по крайней мере.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top