MyBridgeは、アプリケーションとバックエンドのMySQLサーバー間で透明なルーティングを提供する高性能ミドルウェアです。これにより、データベースのスケーラビリティとパフォーマンス向上が実現されます。
1. MyBridgeの主要機能とその選択理由
1.1 データベースルーティングの透明性
MyBridgeの最も重要な特徴は、SQLリクエストを適切なバックエンドに自動的に転送できる透明なルーティング能力です。これにより、アプリケーション側での複雑な設定が不要になります。
例: 仮想的なルーティングプロセス図
1.2 高性能とモジュール化設計
MyBridgeはネットワークステートマシン、SQL解析、接続プール管理などのモジュールを含む分層設計を採用し、高可用性と拡張性を確保します。
例: MyBridgeのアーキテクチャ図
2. MyBridgeのインストールと設定
2.1 必要な依存関係のインストール
- cmake
- gcc
- glib2-devel (バージョン >= 2.6.0)
- zlib-devel
- flex
- mysql-devel 5.7+ / mariadb-devel
- gperftools-libs
CentOSの場合:
yum install cmake gcc glib2-devel flex mysql-devel gperftools-libs zlib-devel -y
2.2 ソースコードの取得とコンパイル
git clone https://example.com/mybridge-repo.git
cd mybridge
mkdir build
cd build
# 読み書き分離版
CFLAGS='-g' cmake ../ -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local/mybridge -DSIMPLE_PARSER=ON
# 分散版
CFLAGS='-g' cmake ../ -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local/mybridge -DSIMPLE_PARSER=OFF
make install
2.3 設定ファイルの編集
設定ファイルは以下の場所にあります:
- auth.json:ユーザ設定ファイル
- params.json:変数設定ファイル
- shard_rules.json:分散版の設定ファイル
- proxy_config.conf:読み書き分離版の起動設定ファイル
- shard_config.conf:分散版の起動設定ファイル
cp auth.json.example auth.json
cp params.json.example params.json
# 版本に応じてproxy_config.confまたはshard_config.confをコピー
cp proxy_config.conf.example proxy_config.conf # 読み書き分離版
# または
cp shard_config.conf.example shard_config.conf # 分散版
2.4 MyBridgeサービスの起動
# 読み書き分離版
/usr/local/mybridge/bin/mybridge --defaults-file=/usr/local/mybridge/conf/proxy_config.conf --conf-dir=/usr/local/mybridge/conf/
# 分散版
/usr/local/mybridge/bin/mybridge --defaults-file=/usr/local/mybridge/conf/shard_config.conf --conf-dir=/usr/local/mybridge/conf/
3. MyBridgeの展開シナリオ
3.1 読み書き分離の展開
LVSによる負荷分散とMHAによる高可用性を組み合わせた構成が可能です。
例: 読み書き分離のアーキテクチャ図
3.2 分散テーブルの展開
大規模データに対応するため、データを複数のデータベースノードに分散させる方法を提供します。
例: 分散テーブルのアーキテクチャ図
4. MyBridgeの全体アーキテクチャ概要
MyBridgeのアーキテクチャはLVSクラスター、MyBridgeクラスター、MySQLクラスターの連携によって、高い可用性と拡張性を実現します。
例: MyBridgeの全体アーキテクチャ図