大規模 Web システム アーキテクチャに関する簡単な説明、Web システム アーキテクチャ_PHP チュートリアル
大規模なWebシステムアーキテクチャ、Webシステムアーキテクチャの簡単な説明
動的アプリケーションとは、c/c++、php、Java、perl、.netなどのサーバーサイド言語で開発されたネットワークアプリケーションを指します。 、Web サイトの静的コンテンツに関連するソフトウェア (フォーラム、オンライン フォト アルバム、デート、ブログ、その他の一般的なアプリケーションなど)。動的アプリケーション システムは通常、データベース システム、キャッシュ システム、分散ストレージ システムなどから切り離せません。
大規模動的アプリケーション システム プラットフォームは、主に、大規模なトラフィック、高同時実行性の Web サイト向けに確立された基盤となるシステム アーキテクチャを目的としています。大規模な Web サイトの運用には、Web サイト アプリケーションのスムーズな運用を確保するために、信頼性が高く、安全で、スケーラブルで、保守が容易なアプリケーション システム プラットフォームのサポートが必要です。
大規模な動的アプリケーション システムは、いくつかのサブシステムに分割できます:
1) Webフロントエンドシステム
2) 負荷分散システム
3) データベースクラスタシステム
4) キャッシングシステム
5) 分散ストレージシステム
6) 分散サーバー管理システム
7) コード配布システム
Webフロントエンドシステム
構造図:
異なるアプリケーションのサーバー共有、単一障害点の回避、集中管理、統一された構成などを実現するために、サーバーはアプリケーションごとに分割されず、すべてのサーバーが均一に使用され、複数のアプリケーションにサービスを提供できます。特定のアプリケーションへのアクセス数が増加すると、サーバー ノードを追加することでサーバー クラスター全体のパフォーマンスが向上し、他のアプリケーションにも恩恵がもたらされます。 Web フロントエンド システムは、Apache/Lighttpd/Eginx などの仮想ホスト プラットフォームに基づいており、PHP プログラム の実行環境を提供します。サーバーは開発者にとって透過的であり、開発者がサーバー管理に介入する必要はありません
負荷分散システム
負荷分散システムはハードウェアとソフトウェアの2種類に分けられます。 F5 などのハードウェア負荷分散は効率が高いですが、コストがかかります。ソフトウェア負荷分散システムは、ハードウェア負荷分散システムよりも安価または無料であり、効率も劣りますが、lvs や nginx など、平均的なトラフィックまたはわずかに大きいトラフィックの Web サイトには十分です。ほとんどの Web サイトでは、ハードウェアとソフトウェアの負荷分散システムを組み合わせて使用しています。
データベースクラスタシステム
構造図:
Webフロントエンドはサービスの有効性と拡張性を高めるために負荷分散クラスター構造を採用しているため、サービスシステム全体の高信頼性を確保するためにデータベースも高信頼性が求められます。大規模な同時実行を提供します。どのデータベース システムが処理されていますか?
上の図に示すソリューションを使用できます:
1) MySQL データベースを使用する 読み取りが多く書き込みが少ない Web アプリケーション データベースの特性を考慮して、主に読み取りデータベースを最適化し、アプリケーションで読み取り操作と書き込み操作を実装するための専用の読み取りデータベースと書き込みデータベースを提供します。書き込み操作はそれぞれ異なるデータベースにアクセスします。
2) MySQL レプリケーション機構を使用して、マスター データベース (書き込みデータベース) のデータベースをスレーブ データベース (読み取りデータベース) に迅速にコピーします。 1 つのマスター データベースは複数のスレーブ データベースに対応し、マスター データベースのデータはリアルタイムでスレーブ データベースに同期されます。餃子製造機 www.yjlmj.com 整理して公開しました
3) 複数の書き込みデータベースがあり、それぞれを複数のアプリケーションで使用できるため、書き込みデータベースのパフォーマンスのボトルネック問題と単一障害点の問題を解決できます。
4) 閲覧データベースが複数存在し、負荷分散装置により負荷分散が行われることで、閲覧データベースの高性能、高信頼性、高拡張性が実現されます。
5) データベースサーバーとアプリケーションサーバーは分離されています。
6) データベースからの負荷分散にはBigIPを使用します。
キャッシングシステム
キャッシュはファイルキャッシュ、メモリキャッシュ、データベースキャッシュに分かれます。大規模な Web アプリケーションで最も一般的に使用され、最も効率的な方法はメモリ キャッシュです。最も一般的に使用されるメモリ キャッシュ ツールは Memcached です。適切なキャッシュ システムを使用すると、次の目標を達成できます:
1. キャッシュ システムを使用すると、アクセス効率が向上し、サーバーのスループットが向上し、ユーザー エクスペリエンスが向上します。
2. データベースとセーブセット サーバーへのアクセス負荷を軽減します。
3. 単一障害点を回避し、高い信頼性と拡張性を提供し、パフォーマンスを向上させるために、複数の Memcached サーバーがあります。
分散ストレージシステム
構造図:
Webシステムプラットフォームにおけるストレージ要件には、次の2つの特徴があります。
1) ストレージ容量が大きく、フォトアルバムやビデオ、その他のアプリケーションなど、単一のサーバーでは提供できない規模に達することがよくあります。したがって、専門的な大規模ストレージ システムが必要です。2) 負荷分散クラスター内の各ノードは任意のデータ オブジェクトにアクセスでき、各ノードによるデータ処理は他のノードでも共有できるため、これらのノードで操作されるデータは論理的には全体であり、独立したデータではありません。リソース。
したがって、高性能の分散ストレージシステムは、大規模なWebサイトアプリケーションにとって非常に重要な部分です。 (分散ストレージ システムの簡単な説明をここに追加する必要があります。)
分散サーバー管理システム
構造図:
Web サイトへのアクセス トラフィックが継続的に増加するにつれ、ほとんどのネットワーク サービスは負荷分散クラスターの形式で外部から提供され、クラスターの規模が拡大するにつれて、スタンドアロン マシンに基づく元のサーバー管理モデルではニーズを満たすことができなくなりました。 new 要件は、サーバーを集中、グループ化、バッチ、および自動化した方法で管理できること、および計画されたタスクをバッチで実行できることである必要があります。
分散サーバー管理システムのソフトウェアには優れたソフトウェアがいくつかありますが、より理想的なソフトウェアの1つがCfengineです。サーバーをグループ化し、異なるグループでシステム構成ファイル、スケジュールされたタスク、その他の構成をカスタマイズできます。これは C/S 構造に基づいており、すべてのサーバー構成および管理スクリプト プログラムは Cfengine サーバーに保存され、管理対象サーバーは Cfengine クライアント プログラムを実行し、SSL 暗号化接続を介してサーバーにリクエストを送信します。最新の設定ファイルと管理コマンド、スクリプト、パッチのインストール、その他のタスク。
サーバー集中管理ツール Cfengine を使用すると、大規模なサーバークラスター管理を効率的に実現できます。 ネットワークが接続できれば、管理対象サーバーと Cfengine Server を任意の場所に分散させることができ、迅速な管理を実現できます。 。
コードリリースシステム
構造図:
Web サイトへのアクセス トラフィックの増加が続く中、クラスター環境でのプログラム コードの一括配布や更新に対応するために、ほとんどのネットワーク サービスは負荷分散クラスターの形で外部から提供されます。 プログラムコードリリースシステム。
この出版システムは、次の目標を達成するのに役立ちます:
1) 本番環境のサーバーは仮想ホストの形でサービスを提供するため、開発者がメンテナンスや直接操作に介入する必要がなく、リリースシステムを使用してターゲットサーバーにログインすることなくプログラムを配布できます。サーバ。
2) 内部開発、内部テスト、本番環境テスト、本番環境リリースの 4 つの開発段階の管理を実現する必要があり、各段階のコードリリースにリリースシステムが介入できます。
3) ソースコード管理とバージョン管理を実装する必要があり、SVN はこの要件を達成できます。
一般的に使用されるツール Rsync を使用して、対応するスクリプト ツールを開発することで、サーバー クラスター間のコード同期分散を実現できます。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











深層学習の概念は人工ニューラル ネットワークの研究に由来しており、複数の隠れ層を含む多層パーセプトロンが深層学習構造です。ディープラーニングは、低レベルの特徴を組み合わせて、データのカテゴリや特性を表すより抽象的な高レベルの表現を形成します。データの分散された特徴表現を検出できます。ディープラーニングは機械学習の一種であり、機械学習は人工知能を実現する唯一の方法です。では、さまざまな深層学習システム アーキテクチャの違いは何でしょうか? 1. 完全接続ネットワーク (FCN) 完全接続ネットワーク (FCN) は、一連の完全接続層で構成され、各層のすべてのニューロンが別の層のすべてのニューロンに接続されています。その主な利点は、「構造に依存しない」ことです。つまり、入力に関する特別な仮定が必要ありません。この構造にとらわれないことにより、完全な

論文のアドレス: https://arxiv.org/abs/2307.09283 コードのアドレス: https://github.com/THU-MIG/RepViTRepViT は、モバイル ViT アーキテクチャで優れたパフォーマンスを発揮し、大きな利点を示します。次に、この研究の貢献を検討します。記事では、主にモデルがグローバル表現を学習できるようにするマルチヘッド セルフ アテンション モジュール (MSHA) のおかげで、軽量 ViT は一般的に視覚タスクにおいて軽量 CNN よりも優れたパフォーマンスを発揮すると述べられています。ただし、軽量 ViT と軽量 CNN のアーキテクチャの違いは十分に研究されていません。この研究では、著者らは軽量の ViT を効果的なシステムに統合しました。

SpringDataJPA は JPA アーキテクチャに基づいており、マッピング、ORM、トランザクション管理を通じてデータベースと対話します。そのリポジトリは CRUD 操作を提供し、派生クエリによりデータベース アクセスが簡素化されます。さらに、遅延読み込みを使用して必要な場合にのみデータを取得するため、パフォーマンスが向上します。

視覚タスク (画像分類など) の深層学習モデルは、通常、単一の視覚領域 (自然画像やコンピューター生成画像など) からのデータを使用してエンドツーエンドでトレーニングされます。一般に、複数のドメインのビジョン タスクを完了するアプリケーションは、個別のドメインごとに複数のモデルを構築し、それらを個別にトレーニングする必要があります。データは異なるドメイン間で共有されません。推論中、各モデルは特定のドメインの入力データを処理します。たとえそれらが異なる分野を指向しているとしても、これらのモデル間の初期層のいくつかの機能は類似しているため、これらのモデルの共同トレーニングはより効率的です。これにより、遅延と消費電力が削減され、各モデル パラメーターを保存するためのメモリ コストが削減されます。このアプローチはマルチドメイン学習 (MDL) と呼ばれます。さらに、MDL モデルは単一モデルよりも優れたパフォーマンスを発揮します。

少し前に、Transformer のアーキテクチャ図と Google Brain チームの論文「Attending IsAllYouNeed」のコードとの間の矛盾を指摘したツイートが多くの議論を引き起こしました。セバスチャンの発見は意図せぬ間違いだったのではないかと考える人もいるが、これもまた驚くべきことである。結局のところ、Transformer 論文の人気を考慮すると、この矛盾については何千回も言及されるべきでした。 Sebastian Raschka氏はネチズンのコメントに答えて、「最もオリジナルな」コードは確かにアーキテクチャ図と一致していたが、2017年に提出されたコードバージョンは修正されたものの、アーキテクチャ図は同時に更新されていなかったと述べた。これが議論の「齟齬」の根本原因でもある。

人工知能 (AI) は多くの業界の状況を変え、企業の効率、意思決定、顧客エクスペリエンスの向上を可能にしました。 AI は進化し続け、より複雑になるため、企業はその開発と展開をサポートする適切なインフラストラクチャに投資することが重要です。このインフラストラクチャの重要な側面は、IT チームとデータ サイエンス チームのコラボレーションであり、どちらも AI イニシアチブの成功を確実にする上で重要な役割を果たします。人工知能の急速な発展により、コンピューティング能力、ストレージ、ネットワーク機能に対する需要が増大しています。この需要により、AI に必要な複雑でリソースを大量に消費するワークロードを処理するように設計されていない従来の IT インフラストラクチャに圧力がかかります。その結果、企業は現在、AI ワークロードをサポートできるシステムの構築を検討しています。
![2023 年に知っておく価値のあるいくつかのフロントエンド書式設定ツール [概要]](https://img.php.cn/upload/article/000/000/068/63e4b85293db8322.jpg?x-oss-process=image/resize,m_fill,h_207,w_330)
eslint は、eslint エコロジカル チェーンを使用して、js/ts の基本構文に関する開発者の仕様を標準化します。チーム メンバーがランダムに記述できないようにします。ここでは主に次の eslint パッケージが使用されます。依存関係を追跡するには、次のステートメントを使用します。次に、eslint を構成する必要があります。

1. Llama3 のアーキテクチャ このシリーズの記事では、llama3 を最初から実装します。 Llama3 の全体的なアーキテクチャ: Llama3 のモデル パラメーターをイメージします: Llama3 モデルのこれらのパラメーターの実際の値を見てみましょう。図[1] コンテキストウィンドウ (context-window) LlaMa クラスをインスタンス化する際、変数 max_seq_len によって context-window が定義されます。クラスには他にもパラメータがありますが、このパラメータは変圧器モデルに最も直接関係しています。ここでの max_seq_len は 8K です。図[2] 語彙サイズと注意力L
