4

目前,我正在考虑在这 3 种语言之间进行一个需要非常高正常运行时间的项目(正常运行时间比性能更重要)。

我已经做了一段时间的 PHP 开发人员,不介意切换到“更好”的语言,例如 Python,或者更(可能)更专业的语言,例如 Java,但有一件事阻碍了我:

在 PHP 中,假设一个用户创建了一些格式错误/奇怪的请求,导致我的代码崩溃——只有那个用户会受到影响。其他用户可以继续发出请求,因为每个 HTTP 请求都会调用一个新的 PHP 进程。

考虑 Python 或 Java:如果用户使我的后端代码崩溃,则只有一个进程在运行,整个 webapp 都会崩溃,这将是一场灾难。

我的问题是,有没有一个词可以描述这两种不同的 Web 编程方法?另外,我是否遗漏了任何明显的东西,或者 PHP 真的比 Python/Java/其他持久进程方法有这么大的优势,如果是这样,为什么 Python 不采用这种方法?

4

2 回答 2

1

我正在寻找的是有人将我指向这样的文章:

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

Python 可以通过 WSGI 在后台持续运行,并且可以有许多解释器在等待请求。如果其中一个解释器崩溃,这不是问题,因为其他解释器正在等待,因为 Apache 可以自动重新启动任何崩溃的解释器。

Python 也可以在类似于 PHP 的每个请求上手动调用,但速度较慢。

于 2012-08-30T04:08:49.033 回答
0

这不是特定于语言的问题。这是一个在将软件放入实际环境之前如何对其进行测试的问题。以及你如何设计你的服务器基础设施。

如果您的软件中存在导致服务器崩溃的错误,您应该修复它。如果 mod_php/您的代码中存在奇怪的错误,即使 PHP 也会使整个服务器崩溃。

如果您不想出现单点故障,则必须构建高可用性设置。至少 2 个负载均衡器(例如使用keepalived)、2 个 Web 服务器、2 个数据库服务器、2 个 ...

此外,您还想使用Godmon之类的东西来监控您的流程并对所需服务的突然死亡做出反应。

于 2012-08-28T04:58:34.733 回答