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

みんなが話題にしているこの分散システムとは、いったい何なのでしょうか?
[[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 プロフェッショナルが知っておくべきこと

推薦する

個人ウェブサイトの包囲網を突破するための4つの提案

多くのウェブマスターは、個人ウェブサイトが包囲網を突破して発展することがいかに難しいかを語っています...

パーフェクトワールドがシャンダゲームズと提携:バックアッププランの可能性と「恨み」を晴らす意欲

2日前、パーフェクトワールドがシャンダゲームズの株式を買収するというニュースが出た時、私はその発表を...

desivps: 米国ロサンゼルスのデータセンターの VPS を簡単にレビューして、desivps がどのように機能するかを確認します。

desivps は最近、中国のお客様向けに特別プロモーション VPS を開始しました (年間 6 回...

Hawkhost (Eagle Host) - ホスティング/仮想ホスティング/リセラー/セミ仮想ホスティング/Alipay が 45% オフ

Hawkhost は、ロサンゼルス データ センターのホストのプロモーションを開始しました (このプ...

DevOps ロードマップ 2022

Lummo の主任ソフトウェア エンジニアである Anjul Sahu 氏は、DevOps エンジニ...

商品説明ページを作成する際に注意すべき点

商品説明ページを作成する前に、まず1つのことを明確に考える必要があります。それは、商品説明ページで最...

現在のWeiboマーケティングに対する3つの提案

微博が登場した当初は、あまり注目を集めませんでした。多くの人が微博に登録したのは、ただ自分の気持ちを...

企業のデジタル変革を「ワンストップ」で実現するにはどうすればよいでしょうか? VMwareが教えてくれる

[51CTO.com からのオリジナル記事] 「従業員を大切にすれば、従業員も顧客を大切にするように...

VPS の簡単なレビュー: hostus-ダラス データ センター、年間 10 ドル、768M メモリ

「Hostus - ロンドンデータセンター、10Gポート、最安VPSの簡単なレビュー」を書き終えたば...

テンセントの新しいカジュアルゲームのゲームプレイを1つの記事で理解する

[51CTO.comより引用] 近年、カジュアルゲームのユーザー規模は着実に成長を続けています。特に...

SAP:クラウドファースト、中国企業の産業インターネットプロセスを促進

【51CTO.comオリジナル記事】2021年ハノーバー産業見本市が4月12日から16日までオンライ...

「SMOは現在最もホットなオンラインマーケティング手法です

オンラインプロモーションに携わっている友人は、SEO(検索エンジン最適化)やSEM(検索エンジンマー...

中国のハッカー産業チェーンの規模は数百億に達する可能性があり、情報セキュリティに関する懸念が生じている。

個人情報窃盗防止のための法整備を求める特定の消費、医療、家の見学、登録などにより、個人情報が「野火の...

Java バックエンド テクノロジー: Java 仮想マシン スタックの探索

Java に精通している学生は、JVM がスタックベースであることを知っておく必要があります。しかし...