ホームページ  >  記事  >  バックエンド開発  >  PHP は同時実行性の問題をどのように処理しますか?

PHP は同時実行性の問題をどのように処理しますか?

青灯夜游
青灯夜游オリジナル
2019-11-20 13:29:044215ブラウズ

分散システムの出現により、高い同時実行性 (High Concurrency) とは通常、システムが設計を通じて多くのリクエストを同時に並行して処理できることを保証することを指します。平たく言えば、高い同時実行性とは、多くのユーザーが同じ時点で同じ API インターフェイスまたは URL アドレスに同時にアクセスすることを意味します。これは、多数のアクティブ ユーザーが存在し、ユーザーが集中しているビジネス シナリオでよく発生します。

PHP は同時実行性の問題をどのように処理しますか?

#高同時実行性を処理するためのビジネス ロジックは次のとおりです:

フロント エンド: 静的 cdn 後のリソースの非同期リクエスト

終了: リクエスト キュー ポーリング分散ロード バランシング共有キャッシュ

データ レイヤー: Redis キャッシュ データ テーブル書き込みキュー

ストレージ: RAID アレイ ホット バックアップ

ネットワーク: DNS ポーリング DDOS攻撃防御

#動画コースお勧め→:#「1000万レベルのデータ同時実行ソリューション(理論と実践)」

php の同時実行性の問題に対処する方法

1. アプリケーションと静的リソースの分離

静的リソース (js、css、画像など) を専用サーバー。

2. ページ キャッシュ

アプリケーションによって生成されたページをキャッシュすると、CPU リソースを大量に節約できます。データを頻繁に変更する一部のページでは、ajax を使用して処理できます。

3. クラスターと分散

クラスターは、複数のサーバーが同じ機能を持ち、主に転用の役割を果たします。分散型では、異なるビジネスを異なるサーバーに配置します。リクエストを処理するために複数のサーバーが必要になる場合があり、それによりリクエストの処理速度が向上します。さらに、静的リソース クラスターとアプリケーション クラスターに分かれます。後者はより複雑で、多くの場合、セッション同期などの問題を考慮する必要があります。

4. リバースプロキシ

クライアントが直接アクセスするサーバーは、直接サービスを提供するサーバーではなく、他のサーバーからリソースを取得し、その結果をユーザーに返します。

プロキシ サーバーとリバース プロキシ サーバー:

プロキシ サーバーは、当社に代わってリソースにアクセスし、結果を返します。たとえば、外部ネットワークのプロキシ サーバーにアクセスします。リバースプロキシサーバーとは、私たちが通常サーバーにアクセスする際に、サーバー自体が他のサーバーを呼び出します。

当社ではプロキシ サーバーを積極的に使用してサービスを提供しているため、独自のドメイン名を持つ必要はありません。リバース プロキシはサーバー自体によって使用されており、サーバー自体が独自のドメイン名を持っていることはわかりません。

5. CDN

CDN は特別なクラスター ページ キャッシュ サーバーであり、通常のクラスター内の複数のページ キャッシュ サーバーと比較して、主な違いは、その保存場所と割り当て要求方法が異なることです。 。

CDN サーバーは全国に分散しており、リクエストを受信すると、最適な CDN サーバーノードに割り当てられてデータを取得します。その各 CDN ノードはページ キャッシュ サーバーです。

分散方法:

は通常の負荷分散ではなく、ドメイン名を解決するときに、専用の CDN ドメイン名解決サーバーによって割り当てられます。

一般的なアプローチは次のとおりです。ISP は CNAME を使用してドメイン名を特定のドメイン名に解決し、次に専用の CDN サーバーを使用して解決されたドメイン名を解決します (ブラウザに戻ってアクセスします)。対応するドメイン名 CDN ノード。各ノードは複数のサーバーでクラスタ化することもできます。

推奨学習:

PHP チュートリアル

以上がPHP は同時実行性の問題をどのように処理しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。