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

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

推薦する

大規模分散ウェブサイトアーキテクチャ: 分散システムにおけるキャッシュの応用

キャッシュは分散システムの重要なコンポーネントであり、主に高同時実行性およびビッグデータ シナリオで...

Weiboマーケティングのポイント

ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービスWeiboマーケティング...

一般の SEO 担当者は、最適化作業をより成功させるにはどうすればよいのでしょうか?

ご存知のとおり、ウェブサイトの運用と保守の最適化は複雑な問題です。2010年から2012年にかけて、...

キーワードランキング最適化の価格を決定する要因は何ですか?

多くのお客様からキーワードランキング最適化の価格についてご相談をいただいております。ここでは、キーワ...

個人ウェブマスター: ウェブサイト最適化コードの作成方法

Web テクノロジー CSS のフォント属性の省略スキル。省略は、コードを削減し、CSS を最適化し...

SEOの成功は単一の成功ポイントではない

実際、著者はSEOが非常に包括的な業界であることを常に強調してきました。SEOを行うには、プログラミ...

re:Invent 2018 の最新リリース (パート 3)

[[252766]] re:Invent 2018は成功裏に終了しました皆さんもすでに生み出された情...

業界の大物が方向転換できない場所で、90年代以降の女性が「成都の仲人」の役割を果たす

「業界の大物たちでさえも方向転換できない場所にいる」と、1990年代生まれのミミさんはよく言う。ミミ...

advinservers: ダラス VPS、月額 1.99 ドル、2G メモリ/1 コア (Ryzen9 5950X)/15G SSD/無制限トラフィック、Windows をサポート

advinservers は 2009 年に設立され、デラウェア州に登録された小規模企業で、現在は主...

ウェブサイトの最適化のための高品質な詳細と強力な攻撃戦略を取得する方法

ウェブサイトの最適化は、基本的にウェブサイト開発の生命線と言えます。ウェブサイトは強力な資本や豊富な...

SEOを行うには、4つの基本的なデータ分析を習得する必要があります。

SEO 業界では、データが非常に重要な中核を占めています。私たちは毎日、さまざまな種類のデータに注目...

サイト上のスプロケットの構築はウェブサイトの飛躍的な成長に貢献する

有能な SEO 担当者として、あなたは「スプロケット」の基本的な SEO 概念についてよく理解してい...

チャネルを活用してユーザー数の増加を実現するにはどうすればよいでしょうか?

私の周りにも起業家はたくさんいます。2015年から2017年の間に起業した人は基本的に黒字で、ここ数...

今年の新バージョン: 安価なサーバーベンダーの推奨事項、速度と価格を考慮した包括的な比較

予算が限られている多くの友人は、安価なサーバー(安価な海外サーバー)を必要としており、安価なサーバー...