みんなが話題にしているこの分散システムとは、いったい何なのでしょうか?

みんなが話題にしているこの分散システムとは、いったい何なのでしょうか?
[[227273]]

大規模な Web サイトにおける高同時アクセスや大量のデータ処理シナリオの増加に伴い、Web サイトの高可用性、スケーラビリティ、拡張性、セキュリティという目標を達成することがますます重要になっています。こうした一連の問題を解決するために、大規模 Web サイトのアーキテクチャは常に進化しています。大規模 Web サイトの高可用性アーキテクチャを改善するには、分散について言及する必要があります。この記事では、分散システムの概念、分散システムの特徴、一般的に使用される分散ソリューション、分散とクラスターの違いについて簡単に説明します。

これは私が以前ブログに投稿した記事です。最近分散案件の記事を充実させていこうと思っているので、まだ読んでいない友人のために公式アカウントに基本的な記事を再度投稿します。

1. 分散システムについて学ぶ前に、まず対応する集中型システムがどのようなものかを理解することが重要です。

集中型システムは、1 つのホストと複数の端末という 1 つの文で要約できます。端末にはデータ処理機能はなく、データの入出力のみを担当します。すべての計算と保存はホスト上で実行されます。

電子商取引モールを例に挙げてみましょう。集中型システムの電子商取引モールは、ホスト上に展開され、外部にサービスを提供するアプリケーションを通じて実装されます。すべてのユーザー操作は、この 1 台のマシン上の 1 つのアプリケーションを通じて実行されます。

集中型システムの最大の特徴は、その展開構造が非常にシンプルで、基盤層では一般的に IBM や HP などのメーカーから購入した高価なメインフレームが使用されることです。したがって、複数のノードにサービスを展開する方法を考慮する必要はなく、ノード間の分散コラボレーションを考慮する必要もありません。

ただし、単一マシン展開を使用しているためです。大規模で複雑なシステム、困難なメンテナンス、単一点障害(単一点障害が発生すると、システム全体またはネットワーク全体に影響が及び、システム全体またはネットワークが麻痺する)、スケーラビリティの低下などの問題につながる可能性があります。

2. 分散システム

『分散システムの概念と設計』という書籍では、分散システムについて次のように定義されています。

  • 分散システムとは、ハードウェアまたはソフトウェア コンポーネントがネットワーク上のさまざまなコンピューターに分散され、メッセージの受け渡しを通じてのみ相互に通信および調整されるシステムです。

簡単に言えば、外部に対して共同でサービスを提供する独立したコンピュータのグループですが、システムのユーザーにとっては、サービスを提供する単一のコンピュータのようなものです。

分散とは、高価なメインフレームと比較して、より一般的なコンピューターを使用して分散クラスターを形成し、外部サービスを提供できることを意味します。コンピュータの数が増えると、CPU、メモリ、ストレージリソースなどが増え、処理できる同時アクセスの量も増えます。

分散システムによって実装された電子商取引モールは、機能的に複数のアプリケーションに分割され、それぞれが異なる機能を提供し、外部サービスを提供する分散システムを形成する場合があります。

システム内のさまざまなサブシステムは、非同期メッセージや RPC/HTTP 要求呼び出しなど、ネットワークを介して通信および調整を行います。

したがって、分散システム内のコンピュータには空間的な制限はほとんどありません。これらのコンピューターは、異なるキャビネットに配置され、異なるコンピューター室に配備されたり、異なる都市に配備されたりする場合があります。大規模な Web サイトの場合は、異なる国や地域に分散されることもあります。

ただし、空間内でどのように分散されるかに関係なく、標準的な分散システムには次の主な特性が必要です。

分布

分散システム内の複数のコンピューターは、空間的に任意に分散できます。システムにはマスター コンピュータとスレーブ コンピュータの区別はありません。つまり、システム全体を制御するホスト コンピュータはなく、制御されるスレーブ コンピュータもありません。

透明性

システム リソースはすべてのコンピューターで共有されます。各コンピュータのユーザーは、ローカルコンピュータのリソースだけでなく、分散システム内の他のコンピュータのリソース(CPU、ファイル、プリンタなど)も使用できます。

身元

システム内の複数のコンピューターが相互に連携して共通のタスクを完了したり、プログラムを複数のコンピューターに分散して並行して実行したりできます。

コミュニケーション

システム内の任意の 2 台のコンピューターは、通信を通じて情報を交換できます。

集中型システムと比較すると、分散型システムはコスト効率が高く、処理能力が強く、信頼性が高く、スケーラビリティに優れています。

ただし、分散によって Web サイトの同時実行性の問題は解決されますが、他のいくつかの問題も発生します。

まず、配信に必要な条件はネットワークであり、これはパフォーマンスやサービス機能に一定の影響を及ぼす可能性があります。第二に、クラスター内のサーバーの数が増えるほど、サーバーのダウンタイムの可能性が高くなります。さらに、サービスはクラスター内に分散して展開されるため、ユーザーのリクエストはマシンの 1 つにのみ送信されるため、適切に処理されないと、データの一貫性の問題が簡単に発生します。

3. 一般的に使用される分散ソリューション

分散アプリケーションとサービス

アプリケーションとサービスは階層化およびセグメント化され、アプリケーション モジュールとサービス モジュールは分散方式で展開されます。これにより、同時アクセス機能が向上し、データベース接続とリソース消費が削減されるだけでなく、さまざまなアプリケーションで共通のサービスを再利用できるようになり、ビジネスの拡大が容易になります。

分散静的リソース

JS、CSS、画像などの Web サイトの静的リソースを分散展開すると、アプリケーション サーバーの負荷が軽減され、アクセス速度が向上します。

分散データとストレージ

大規模な Web サイトでは大量のデータを処理する必要があり、多くの場合、単一のコンピューターでは、このデータを分散して保存するのに十分なメモリ領域を提供できません。

分散コンピューティング

コンピューティング技術の発展により、一部のアプリケーションでは完了するために膨大なコンピューティング能力が必要になります。集中コンピューティングを使用する場合、完了するまでにかなりの時間がかかります。分散コンピューティングでは、アプリケーションを多数の小さな部分に分割し、複数のコンピューターに分散して処理します。これにより、全体的な計算時間が節約され、計算効率が大幅に向上します。

4. 分散型とクラスター型

多くの人は分布とクラスターの概念をあまり明確に理解しておらず、混同しやすいです。簡単に区別すると次のようになります。

分散とは、さまざまなサービス モジュールが複数の異なるサーバーに展開され、リモート呼び出しを通じて連携して外部にサービスを提供することを意味します。

クラスターとは、同じアプリケーションまたはサービス モジュールを複数の異なるサーバーに展開してクラスターを形成し、負荷分散デバイスを通じて外部にサービスを提供することです。

<<:  クラウドへのデータ移行: ダウンタイムと中断を回避する方法

>>:  ハイブリッドクラウドを安全にする方法: IT プロフェッショナルが知っておくべきこと

推薦する

IP変更後にウェブサイトが削除またはダウングレードされた理由の分析

ウェブサイトの IP アドレスを変更すると、検索エンジンの権威が失われ、インデックスの数が減少するこ...

クラウドコンピューティング企業の台頭により、データベース市場におけるオラクルの優位性が揺らぐ

写真撮影アプリ「Shutterly」が最近、ユーザーの写真の膨大なデータベースをクラウドに移行するこ...

有道の躍進:検索事業は期待通りの成果をあげられず

百度を倒すことは、検索技術を学ぶほとんどのIT担当者の夢でしょう。周鋒氏も例外ではありません。少なく...

Baidu のスナップショットが多くのウェブマスターを困惑させる

最近、ウェブマスターの間で「Baiduスナップショット」という話題が話題になっています。Baiduス...

SEO ケーススタディ: 削除された医療ウェブサイトを復元する方法

みなさんこんにちは。今日は旧正月の3日目で、新年最初の記事でもあります!SEOを行う私たちにとって、...

適切な IoT クラウド プラットフォームを選択する方法

今日、IoT の応用がますます広まるにつれて、多くの組織は基礎を学び、ニーズに応じて適切な IoT ...

ウェブサイトの掲載数の減少は何を意味しますか?

SEO 担当者として、ウェブサイトのインクルージョンをチェックすることは、毎日必ず行うべき宿題です。...

ページ SEO、SEO ウェブサイトキーワード最適化エントリスキル

1. ページタイトルの最適化(タイトルの最適化)これはページの非常に重要な部分です。まず、Web ペ...

arkecx: ワシントン D.C. (首都) データセンターのクラウド サーバー評価

arkecxはどうですか?ワシントン DC の VPS やクラウド サーバーはめったに見られないよう...

K8s のコアコンポーネントと動作メカニズム

Kubernetes のコアコンポーネントと動作メカニズムKubernetes クラスターは、ノード...

ユーザーニーズと検索エンジンの両方を考慮した内部リンクレイアウト方法

内部リンクのレイアウトは、ウェブサイト最適化の重要なコンテンツです。統計分析によると、ウェブサイト訪...

Oracle Fusion ERP Cloud は、グローバルリーダーのイノベーションと成長の推進を支援します

2020 年はビジネスを行う上で困難な年であり、企業が短期的な課題と長期的な戦略計画のバランスを取る...

smartape: ロシアの VPS、年間 35 ドル、2IP、200Mbps 無制限トラフィック、ロシア市場で有名

ロシアの VPS 業者である smartape は、ロシア市場で高い評価を得ています。同社は 200...

JVMさん、誇張しているわけではありません。

[[410405]] JVM が Java にとって、そしてプログラマーの面接にとってどれほど重要で...