0

私がソフトウェア担当者として取り組んでいるプロジェクトから、今後数週間で新しく作成された WebApplication をデプロイする予定です。最初の 6 か月は高負荷になるとは考えていませんが、システム アーキテクチャをスケーラブルに構築したいと考えています。アイデアはありますが、これが一般的かどうか、またはうまく機能するかどうかはわかりません。

  1. 2 つ以上の mysql-ndb クラスター ノードを作成します。
  2. 私は 2 つ以上の Webapplication ノードを作成し、その上に MySQL フロントエンド サーバーを配置して、ndb ストレージに接続します。
  3. 新しい webapplication ノードを展開する場合、常に mysql フロントエンド サーバーがインストールされた状態で出荷されます。したがって、すべての Web アプリケーションは、MySQL 接続のために localhost に接続します。

クラスタ シナリオ

このシナリオにはセキュリティ上の考慮事項があることを知っています。Web アプリケーションはリバース プロキシの背後にあり、外部から直接アクセスすることはできません。

このシナリオに欠点はありますか? 理論的な質問です。ストレージ層で NDB ノードよりも多くのフロントエンド MySQL サーバーを使用するとどうなりますか?

4

1 に答える 1

1

大きなデメリットはないと思います。プロキシを通過するために追加される追加のレイテンシーを考慮してください。

必要な数の MySQL サーバーを追加できます。ストレージ/データ ノードの数には影響しません。これにより、より多くのクライアントが一度にクエリをデータ/ストレージ ノードにプッシュできるようになります。マルチスレッド ストレージ ノード (ndbmtd)を使用して、データをすばやくクエリして返すことを検討してください。

また、次のことをお勧めします。

  • 管理ノードを追加する (ndb_mgmd)
  • SQL ノード/MySQL サーバーの前にロード バランサーを追加して、アプリケーションをデータベース インフラストラクチャからさらに抽象化します。これには 2 つの利点があります。SQL ノードの 1 つがダウンしても、アプリケーションを再起動する必要はありません。アプリケーションへの影響を最小限に抑えながら、個々の SQL ノードをアップグレードできます。

MySQL Cluster のアーキテクチャ図

さらに、もっと読みたい場合は、自分で調査した後、ブログ投稿を読むことで時間を節約できます。

MySQL クラスター 101 MySQL の高可用性アーキテクチャ

于 2014-07-27T15:36:25.283 に答える