分散システムの主な目的
システムパフォーマンスの向上
スループットを向上させて、より多くの顧客にサービスを提供します。同時実行性とフローを改善します。
次のテクノロジーを通じて、同時実行性の高いシナリオを処理する能力を向上させます。
- キャッシュ システムは、クライアントのリクエストにより速く応答します。データベースへの負荷を軽減(応答速度の向上)
フロントエンド ブラウザ、ネットワーク、バックエンド サービス、基盤となるデータベース、ファイル システム、ハードディスク、CPU はすべてキャッシュを備えています。
分散アーキテクチャで、応答速度を向上させるために Redis キャッシュ クラスターが使用される場合 - 負荷分散は、クラスタを介して各ステージをクラスタ化し、複数のマシンを使用してトラフィックを共有します(複数のサーバーがタスクを受け取ります)。
- 非同期呼び出し、主なテクノロジーはメッセージ キュー ミドルウェア (短期的な高い同時実行性を共有)
メッセージ ミドルウェアを通じて、ピーク負荷をカットし、谷を埋めることができます。トラフィックが比較的大きい場合は、データを先にメッセージ キューに保存し、主要な業務のみを処理することができ、他のサービスと同様に、他のサービスがメッセージ キューからデータを読み取って処理することもできます。
- データのパーティショニングとデータ ミラーリング (データベースのオフロード)
大量のデータは特定のルール (地理的位置など) に従って分割され、データはミラーリングされ、サブデータベースとサブテーブルによっていくつかの部分に分割されます (データベース間のトランザクションを解決する必要があります) 。各サーバーは異なるデータベースにアクセスします。(データの一貫性の問題)
システムの可用性を向上させる
安定性とは、サービスの 1 つがダウンしても、サービス全体が完全に停止しないことを意味します。衝撃を軽減します。
- サービスの分割: 障害を分離し、モジュールの再利用性を向上させることができます。しかし、サービス間の依存関係の問題があります
- サービスの冗長性: 単一障害点を解決し、柔軟なスケーリングをサポートします。
- 電流制限とダウングレード: システムが圧力に対処できない場合、電流制限とダウングレードによって一部のサービスを停止し、一部のユーザーを拒否します。
- 高可用性アーキテクチャ: オフサイトの災害復旧、マスター/スレーブ、マスターとスレーブのデータを同じ場所に保持
- 高可用性の運用と保守: DevOps
キーテクノロジー
- サービスガバナンス
サービスの分割、サービスの呼び出し、サービスの検出、サービスの依存関係、およびサービスの重要性の定義。
主要なサービスを整理し、パフォーマンスと可用性を管理する必要がある - アーキテクチャ ソフトウェア管理
サービス間には依存関係と互換性があるためです。そのため、サービスのバージョン管理や、サービスの配置・集計・トランザクション処理の管理が必要となります。
- DevOps
- 自動化された運用とメンテナンス
- リソースのスケジュール管理
- 全体的なアーキテクチャのモニタリング
アプリケーション層、ミドルウェア層、ベース層の 3 層システムを監視します
- フロー制御
ロードバランシング、サーバールーティング、サーキットブレーカー、ダウングレード、電流制限、グレーリリース
コアテクノロジー
- フルスタックシステム監視
- サービス/リソースのスケジューリング
- 交通スケジュール
- ステータス/データのスケジュール設定
- 開発と運用の自動化