中小企業のインターネット企業。 MySQL クラスターは通常、上記のアーキテクチャを備えています。 WEB ノードは、データベースを読み取るときに dbproxy サーバーを読み取ります。 dbproxyサーバーはSQL文を判断してデータベースの読み書きを分離します。読み取りリクエストはスレーブ ライブラリにロードされ (マスター ライブラリを追加することもできます)、書き込みリクエストはマスター ライブラリに書き込まれます。
ここでの dbproxy はデータベース クラスターの唯一のアウトレットであるため、高可用性も必要です。
drproxy は、データベースの読み書き分離によく使用されるソフトウェアです。amoeba、mycat、cobar もよく使用されます。この種のソフトウェアは、読み取りと書き込みの分離機能を備えているだけでなく、バックエンドノードの負荷分散やヘルスチェックも実現できます。
このようなデータベースミドルウェアソフトでは、データベースの読み書き分離を実現するだけでなく、プログラムで記述することもできます。
通常、メイン ライブラリはデュアルマスター高可用性である必要があります。これにより、メイン ライブラリに障害が発生した場合に、他のメイン ライブラリがすぐに引き継ぎます。デュアル マスターを使用しない場合、スレーブ データベースがマスター データベースを引き継ぐときに状態の移行が必要となり、遅延が発生します。
#メイン データベースの高可用性に関して考慮すべき重要な点は、データの同期です。より一般的に使用される高可用性ソリューションは次のとおりです:
1、キープアライブ mysql レプリケーション。 VIP エレガンスは keepalived によって実現され、データ同期は mysql が提供する同期ソリューションであるレプリケーションによって実現されます。
2.ハートビートdrbd。デュアルマスターデータ同期は DRBD を通じて実現され、このデータ同期はブロックデバイスに基づいています。通常の同期ソリューションよりもはるかに高速です。ハートビートによる VIP ドリフトと DRBD リソースの切り替え管理を実現します。
3.キープアライブですよ。
スレーブ ライブラリの場合、5 を超えないことが最善です。そのうち 3 つはユーザーがアクセスするためのノードとして使用し、もう 1 つは内部関係者用のクエリ ノードとして使用できます。内部担当者がノードにクエリを実行する場合、通常、インデックスを作成せずに期間に従ってクエリを実行するため、多くのリソースが消費されるため、顧客のアクセスに影響を与えないように、このノードは別途専用にする必要があります。最後に、データベースのデータ バックアップ用にスレーブ データベースを残しておく必要があります。
スレーブ データベースのデータの一貫性は、マスター データベースからの直接のマスター/スレーブ支援、または他のスレーブ データベースからのマスター/スレーブ レプリケーションによって維持できます (利点は、マスター データベースへの負荷が軽減されることですが、欠点は遅延がわずかに大きいことです)。
以上が大企業は mysql クラスターに何を使用していますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。