PHP непостоянный дизайн процессов против Python/Java


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

Я некоторое время был разработчиком PHP и не возражал бы перейти на "лучший" язык, такой как Python, или более (возможно) более профессиональный, такой как Java, но есть одна вещь, которая меня сдерживает:

В PHP предположим, что один пользователь создает какой-то неправильный/странный запрос, который приводит к сбою моего кода - только этот один пользователь будут затронуты. Другие пользователи могут продолжать делать запросы, так как каждый HTTP-запрос вызывает новый PHP-процесс.

Рассмотрим Python или Java: если пользователь завершит работу с моим внутренним кодом, будет запущен только один процесс, и все веб-приложение выйдет из строя, что станет катастрофой.

Мой вопрос в том, есть ли слово, которое описывает эти два разных подхода к веб-программированию? Кроме того, я упускаю что-то очевидное, или PHP действительно имеет такое большое преимущество перед Python/Java/другие подходы к постоянным процессам, и если да, то почему Python не использует этот подход?

Author: Martin Konecny, 2012-08-28

2 answers

Я искал кого-нибудь, кто указал бы мне на такую статью:

Http://www.electricmonk.nl/docs/apache_fastcgi_python/apache_fastcgi_python.html

Python может постоянно работать в фоновом режиме через WSGI, и может быть много интерпретаторов, ожидающих запроса. Если один из интерпретаторов выходит из строя, это не проблема, так как другие интерпретаторы ждут, и потому что Apache может автоматически перезапустить любой интерпретатор, который выходит из строя.

Питон также может быть вызван вручную при каждом запросе, аналогичном PHP, но это медленнее.

 1
Author: Martin Konecny, 2012-08-30 04:08:49

Это не проблема, связанная с конкретным языком. Это проблема в том, как вы тестируете свое программное обеспечение, прежде чем внедрять его в свою живую среду. И как вы определяете свою серверную инфраструктуру.

Если у вас есть ошибка в вашем программном обеспечении, которая приводит к сбою сервера, вы должны ее исправить. Даже PHP может привести к сбою всего сервера, если в mod_php/вашем коде есть странная ошибка.

Если вы не хотите иметь единственную точку отказа, вы должны создать настройку высокой доступности. не менее 2 Балансировщиков нагрузки (например, с сохраненным ), 2 веб-сервера, 2 Сервера баз данных, 2...

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

 0
Author: jfried, 2012-08-28 04:58:34