pythonはwebバックエンドを開発してどのように高同時の構想を処理します
2503 ワード
1.高同時性とは
ハイコンカレント(High Concurrency)は、インターネット分散システムアーキテクチャの設計において考慮しなければならない要素の1つであり、通常、システムが多くの要求を同時に並列に処理できることを設計することによって保証することを意味する.
高同時相関でよく用いられるいくつかの指標には、応答時間(Response Time)、スループット(Throughput)、毎秒クエリ率QPS(Query Per Second)、同時ユーザ数などがある.
2.システムの同時性を向上させる方法
インターネットの分布式アーキテクチャの設計、システムの同時能力を高める方式、方法論の上で主に2種類あります:垂直拡張(Scale Up)と水平拡張(Scale Out).
垂直拡張:スタンドアロンの処理能力を向上させます.垂直に拡張する方法には、次の2つがあります.
(1)シングルマシンのハードウェア性能を強化する.例えば、CPUコア数を32コア、より良いネットワークカード、例えば万兆をアップグレードし、より良いハードディスク、例えばSSDをアップグレードし、ハードディスク容量を2 T拡張し、システムメモリを128 G拡張する.
(2)シングル・マシン・アーキテクチャのパフォーマンスを向上させる.例えば、Cacheを使用してIO回数を減少させ、非同期を使用してシングル・サービスのスループットを増加させ、ロックされていないデータ構造を使用して応答時間を減少させる.
インターネット業務の発展が非常に急速な初期に、予算が問題でなければ、「シングルマシンのハードウェア性能を強化する」方法でシステムの同時能力を向上させることを強く提案した.この段階で、会社の戦略は往々にして業務を発展させ、時間を奪うことであり、「シングルマシンのハードウェア性能を強化する」ことは往々にして最も速い方法である.
シングルマシンのハードウェア性能を向上させるにしても、シングルマシンのアーキテクチャ性能を向上させるにしても、致命的な不足があります.シングルマシンの性能には常に限界があります.そのため、インターネット分散アーキテクチャの設計が高く、究極のソリューションはレベル拡張です.
水平拡張:サーバ数を増やすだけで、システムのパフォーマンスを線形に拡張できます.水平拡張はシステムアーキテクチャ設計に要求があり、どのようにアーキテクチャの各層で水平拡張可能な設計を行うか、およびインターネット会社のアーキテクチャの各層でよく見られる水平拡張実践は、本論文で重点的に議論した内容である.
3.python高同時性を解決するいくつかの方法
upstream djangoserver {
server 192.168.72.49:8080;
server 192.168.72.49:8081;
}
4.一般的なインターネット階層化アーキテクチャ
一般的なインターネット分散アーキテクチャは、次のように分類されます.
(1)クライアント層:典型的な呼び出し元はブラウザbrowserまたは携帯アプリアプリ
(2)リバースエージェント層:システムエントリ、リバースエージェント
(3)サイトアプリケーション層:コアアプリケーションロジックを実現しhtmlまたはjsonを返す
(4)サービス層:サービス化が実現すれば,この層がある.
(5)データ-キャッシュ層:キャッシュアクセスの高速化ストレージ
(6)データ-データベース層:データベース固化データストレージ