4

現在、非常に長い稼働時間を必要とするプロジェクトで、これら3つの言語の間で検討しています(稼働時間はパフォーマンスよりも重要です)。

私はしばらくの間PHP開発者であり、Pythonなどの「より優れた」言語またはJavaなどのより専門的な(おそらく)より専門的な言語に切り替えてもかまいませんが、私を阻んでいることが1つあります。

PHPで、1人のユーザーが不正な形式/奇妙なリクエストを作成し、コードがクラッシュしたとします。影響を受けるのはその1人のユーザーだけです。各HTTPリクエストは新しいPHPプロセスを呼び出すため、他のユーザーは引き続きリクエストを行うことができます。

PythonまたはJavaを検討してください。ユーザーがバックエンドコードをクラッシュさせた場合、実行中のプロセスは1つだけであり、Webアプリ全体がダウンします。これは災害になります。

私の質問は、Webプログラミングへのこれら2つの異なるアプローチを説明する言葉はありますか?また、明らかなことを見逃しているのでしょうか、それともPHPにはPython / Java /その他の永続的なプロセスアプローチよりも優れた利点があるのでしょうか。もしそうなら、なぜPythonはこのアプローチを採用しないのでしょうか。

4

2 に答える 2

1

私が探していたのは、次のような記事を教えてくれる人でした。

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

Python は WSGI を介してバックグラウンドで永続的に実行でき、多くのインタープリターがリクエストを待機している可能性があります。インタープリターの 1 つがクラッシュした場合、他のインタープリターが待機しているため、これは問題ではありません。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 に答える