ロードバランシング
複数の FE ノードをデプロイする際、ユーザーは FE の上にロードバランシング層をデプロイして高可用性を実現できます。
以下は高可用性のオプションです。
コードアプローチ
1つの方法は、アプリケーション層でコードを実装してリトライとロードバランシングを行うことです。例えば、接続が切れた場合、他の接続で自動的にリトライします。この方法では、ユーザーが複数の FE ノードアドレスを設定する必要があります。
JDBC コネクタ
JDBC コネクタは自動リトライをサポートしています。
jdbc:mysql:loadbalance://[host1][:port],[host2][:port][,[host3][:port]]...[/[database]][?propertyName1=propertyValue1[&propertyName2=propertyValue2]...]
ProxySQL
ProxySQL は、読み書きの分離、クエリルーティング、SQL キャッシング、動的ロード 構成、フェイルオーバー、SQL フィルタリングをサポートする MySQL プロキシ層です。
StarRocks FE は接続とクエリリクエストを受け取る役割を担っており、水平スケーラブルで高可用性があります。しかし、FE は自動ロードバランシングを実現するために、その上にプロキシ層を設定する必要があります。設定手順は以下の通りです。
1. 関連する依存関係をインストール
yum install -y gnutls perl-DBD-MySQL perl-DBI perl-devel
2. インストールパッケージをダウンロード
wget https://github.com/sysown/proxysql/releases/download/v2.0.14/proxysql-2.0.14-1-centos7.x86_64.rpm
3. 現在のディレクトリに解凍
rpm2cpio proxysql-2.0.14-1-centos7.x86_64.rpm | cpio -ivdm
4. 設定ファイルを修正
vim ./etc/proxysql.cnf
ユーザーがアクセス権を持つディレクトリに指示します(絶対パス):
datadir="/var/lib/proxysql"
errorlog="/var/lib/proxysql/proxysql.log"
5. 起動
./usr/bin/proxysql -c ./etc/proxysql.cnf --no-monitor