私は、全国に広がるマルチマスターのクラスター化されたMySQLデータベースを設計しようとしています。
クラスターを使用する主な理由は、1つの場所(またはノード)でインターネットが切断された場合でも、その場所でデータベースの内容をローカルで読み取って変更できるようにするためです。そのため、インターネット接続が復元されると、クラスターの残りの部分が更新されます。
MySQL Clusterのドキュメントを確認しましたが、この特定の質問は見つかりませんでした。 MySQL Clusterを使用してこれを実現することは可能ですか?
つまり、MySQLClusterはユースケースに適していません。
MySQL Clusterのシェアードナッシングアーキテクチャは、コンポーネントレベルの障害に対する優れた保護を提供します。ノードに障害が発生したり応答しなくなったりすると、クラスターは影響を受けるノードを無効にするための迅速なアクションを実行します。競合の解決に焦点を当てるのではなく、単一のクラスターが調整なしで作業を並行して処理し始める「スプリットブレイン」問題を回避するように機能します。これは、説明したユースケースとは正反対です。データベースアクティビティは、ネットワークによってパーティション分割されたときに通常どおり継続し、後ですべてが再接続したときに調整されます。
また、MySQL Clusterは通常、ノードに低遅延接続がない場合はうまくいきません。 WANノード間の接続に依存することは悪い考えです。MySQLClusterはデータセンター間の非同期レプリケーションをサポートします。
代わりに、MySQL Server 5.7で マルチソースレプリケーション を使用することを検討してください。