MySQL Router
MySQL Routerはアプリケーションと任意のバックエンドのMySQLサーバー間の透過的なルーティングを提供する軽量のミドルウェアです。データベースへの接続を適切なバックエンドのMySQLサーバーへ効果的に ルーティングすることにより、高可用性や拡張性の提供など、様々なユースケースで使用できます。MySQL Routerは、プラガブル・アーキテクチャを採用しており、開発者がカスタマイズして機能拡張することも可能です。
フェイルオーバー
一般的に、高可用性構成のMySQLは1つのマスターと複数のスレーブで構成され、マスターがダウンした場合のフェイルオーバー方法はアプリケーションに依存します。MySQL Routerを使用した場合、アプリケーション接続は、アプリケーション・コードをカスタマイズすることなく負荷分散ポリシーに基づいて透過的にルーティングされます。
負荷分散
MySQL Routerは、複数台のMySQLサーバーにデータベース接続を分散することにより、更なる拡張性とパフォーマンスを提供します。例えば複製された複数台のMySQLサーバーがある場合、MySQL Routerはアプリケーションからの接続をそれらのMySQLサーバーにラウンドロビン方式で分配できます。
プラガブル・アーキテクチャ
MySQL Routerはプラガブル・アーキテクチャを採用しているため、容易に追加機能を実装でき、無限の可能性があります。MySQL Routerは、現在以下のコアプラグインを提供しています。
- コネクション・ルーティング: コネクション・ルーティング・プラグインは、コネクションベースのルーティングを提供します。バックエンドのMySQLサーバーの状態を確認せずにMySQLパケットを転送するため、最大のスループットを実現しています。
- メタデータ・キャッシュ: メタデータ・キャッシュ・プラグインは、グループ・レプリケーションとMySQL InnoDB Clusterへの透過的なクライアントのロードバランシング、ルーティング及びフェイルオーバーを提供します。
MySQL Routerが高可用性グループ内のSourceに透過的に接続を転送する