MGR (MySQL グループ レプリケーション) は、バージョン 5.7 で追加された新しい機能であり、MySQL プラグインです。 MGR は、新しい高可用性と高スケーラビリティのソリューションです。クラスター内のどのノードのデータも同じであり、どのノードにも書き込むことができるため、真のマルチマスターが実現します。 主に以下の部分が含まれます。 API レイヤー: MySQL サーバーとのやり取りを完了し、サーバーのステータスを取得し、トランザクション管理を完了する役割を担います。 コンポーネント層: 主に 3 つの特定のコンポーネントが含まれます。Capture はトランザクション実行の関連情報を収集し、Applier はクラスター トランザクションをローカルに適用し、Recovery はノード データのリカバリを担当します。 レプリケーション層: 競合の検証、クラスター トランザクションの受信と適用を担当します。 クラスター通信層: Paxos プロトコルに基づくクラスター通信エンジンと上位層コンポーネントとの相互作用インターフェイス。 MGR グループレプリケーション: 従来の非同期レプリケーションと半同期レプリケーションの欠陥(データの一貫性を保証できない)に基づき、MySQL はバージョン 5.7.17 でグループ レプリケーション(MySQL グループ レプリケーション、略して MGR)を正式にリリースしました。 レプリケーション グループは複数のノードで構成されます。トランザクションの送信は、グループ内のノードの過半数 (N/2 + 1) によって決定され、承認されてからでないと実行できません。上図に示すように、レプリケーション グループは 3 つのノードで構成されています。コンセンサス レイヤーは、一貫性プロトコル レイヤーです。トランザクションの送信プロセス中に、グループ間通信が行われます。トランザクションは、2 つのノードが承認した後にのみ送信および応答できます。 グループ レプリケーションの導入は、主に、従来の非同期レプリケーションや半同期レプリケーションで発生する可能性があるデータの不整合の問題を解決するために行われます。グループ レプリケーションは、分散一貫性プロトコル (Paxos プロトコルのバリアント) に依存して、分散環境でデータの最終的な一貫性を実現し、真に高可用性のデータ ソリューションを提供します (本当に高可用性であるかどうかはまだ議論されていません)。これが提供するマルチ書き込みソリューションは、マルチアクティブソリューションの実現への希望をもたらします。 MGR は分散データベース アーキテクチャを実装し、その基礎となる分散基盤は Paxos プロトコルです。 Paxos は、分散データベース システムにおけるトランザクションの送信順序を保証するために使用されます。 MGR はスレーブ チャネルを使用しますが、リモートで送信された Binlog イベントを実行するためにこのチャネルの実行スレッド (Applier スレッド) のみを使用し、Binlog イベントの送信にはこのチャネルを使用しません。 MGR は、非同期レプリケーションの Binlog イベント転送メカニズムを使用せず、通信に MySQL サービス ポートも使用しません。 MGR は通信用に独立した TCP ポートを作成します。各 MySQL サーバー上のグループ レプリケーション プラグインはこのポートを介して相互に接続され、相互に直接通信できます。 Binlog イベントの送信は、非同期レプリケーションのような単純なポイントツーポイント送信ではありません。 MGR はデータを送信するときに Paxos プロトコルを使用します。 Paxos プロトコルは、データ転送の一貫性とアトミック性を保証します。 MGR は、マルチマスター レプリケーションを実装するためのコア テクノロジである Paxos プロトコルに基づいて、分散ステート マシン レプリケーション メカニズムを構築します。 主な利点は3つあります。 1. スプリット ブレインを回避: MGR ではスプリット ブレインは発生しません (ただし、ネットワーク パーティションが発生する可能性があることに注意してください。MGR の動作は、パラメータ group_replication_unreachable_majority_timeout=0/N の設定に応じて若干異なります)。 2. データ一貫性の保証: MGR は優れた冗長性機能を備えており、Binlog イベントが少なくともメンバーの半分以上に複製されることを保証できます。メンバーの半分以上が同時に障害を起こさない限り、データ損失は発生しません。また、MGR は、Binlog イベントがメンバーの半数以上に送信されない限り、ローカル メンバーがトランザクションの Binlog イベントを Binlog ファイルに書き込んでトランザクションをコミットしないことを保証します。これにより、ダウンしたサーバーに、グループ内のオンライン メンバーに存在しないデータが存在しないことが保証されます。したがって、ダウンしたサーバーを再起動すると、特別な処理を行わずにグループに参加できます。 3. マルチノード書き込みサポート: マルチ書き込みモードでは、クラスター内のすべてのノードに書き込むことができます。 上記は、MySQL MGR の利点の詳細です。MySQL MGR の詳細については、123WORDPRESS.COM の他の関連記事に注目してください。 以下もご興味があるかもしれません:
|
<<: Linux Jenkins 構成スレーブノード実装プロセス図
>>: Linux で AIDE に基づいてファイルシステムの整合性を検出する方法
1. Dockerコンテナを起動する以下のコマンドを使用して新しい Docker コンテナを起動しま...
序文コア機能のデフォルトの組み込みディレクティブ (v-model および v-show) に加えて...
目次1. まずプロジェクトにechartsをインストールします2. echartsに縦棒グラフテンプ...
1. ネットワーク接続方法がブリッジされていることを確認する物理ネットワーク接続ステータスのコピーを...
この記事では、CSS 画像アニメーション効果(フォトフレーム)のサンプルコードを紹介し、皆さんと共有...
私はずっとキャッシュについて学びたいと思っていました。結局のところ、キャッシュはフロントエンドのパフ...
バックエンド プログラマーは、さまざまな場所で Linux を扱います。Linux ログの読み方がわ...
目次マルチアプリケーションの展開1-Tomcat 構成1.1- プロジェクト構成1.2-サービス構成...
正規表現は、特定のパターンに一致するテキストを検索および置換するためによく使用されます。たとえば、テ...
WeChatアプレットフォームの検証、参考までに具体的な内容は次のとおりです。プラグインWxVali...
背景: MySQL では、レベルに制限がある場合、たとえば、ツリーの最大深度を事前に決定できる場合、...
Nginx は、IP ベースの仮想ホスト構成、ポート ベースの仮想ホスト構成、ドメイン名ベースの仮...
効果: <!doctypehtml> <html> <ヘッド> ...
Vue+ElementUI Treeの使い方は参考までに。具体的な内容は以下のとおりです。 フロント...
Linux システムに触れたばかりの初心者として、VMware 仮想マシンに CentOS6.5 シ...