Citrix ADC

ユースケース 1: プライマリ/セカンダリデータベースアーキテクチャの DataStream を構成する

一般的に使用される導入シナリオは、プライマリデータベースがすべての情報をセカンダリデータベースにレプリケートするプライマリ/セカンダリデータベースアーキテクチャです。

プライマリ/セカンダリデータベースアーキテクチャでは、すべての WRITE 要求をプライマリデータベースに送信し、すべての READ 要求をセカンダリデータベースに送信できます。

次の図は、アプライアンスに設定する必要のあるエンティティとパラメーターの値を示しています。

図1:プライマリ/セカンダリデータベースセットアップ用の DataStream エンティティモデル

プライマリ/セカンダリデータベースのセットアップ

このシナリオ例では、プライマリデータベースを表すサービス (SVC_MySQL_1) が作成され、負荷分散仮想サーバー (lb_vsr_mysql_Primary) にバインドされます。3 つのセカンダリデータベースを表すためにさらに 3 つのサービス (SVC_MySQL_2、svc_mysql_3、および svc_mysql_4) が作成され、それらは別の負荷分散仮想サーバー (lb_vsr_mysql_Secondary) にバインドされます。

コンテンツスイッチ仮想サーバー (cs_vsr_MySQL_1) は、すべての WRITE 要求を負荷分散仮想サーバー lb_vsr_mysql_Primary に送信するように、関連付けられたポリシーを使用して構成されます。すべての READ 要求は、負荷分散仮想サーバー lb_vsr_mysql_secondary に送信されます。

要求がコンテンツスイッチ仮想サーバーに到達すると、仮想サーバーはその要求に対して関連するコンテンツスイッチポリシーを適用します。ポリシーを評価すると、コンテンツスイッチ仮想サーバーは要求を適切な負荷分散仮想サーバーにルーティングし、要求は適切なサービスに送信されます。

次の表に、Citrix ADCアプライアンスで構成されているエンティティとポリシーの名前と値を示します。

エンティティの種類 名前 IPアドレス プロトコル ポート
Services svc_mysql_1 198.51.100.5 MYSQL 3306 -
  svc_mysql_2 198.51.100.6 MYSQL 3306 -
  svc_mysql_3 198.51.100.7 MYSQL 3306 -
  svc_mysql_4 198.51.100.8 MYSQL 3306 -
監視 lb_mon1 - MYSQL-ECV - mysql.res.atleast_rows_count (1)
仮想サーバの負荷分散 lb_vsr_mysql_primary 198.51.100.201 MYSQL 3306 -
  lb_vsr_mysql_secondary 198.51.100.202 MYSQL 3306 -
コンテンツスイッチ仮想サーバー cs_vsr_mysql_1 198.51.100.161 MYSQL 3306 -
コンテンツスイッチポリシー Cs_select - - - MYSQL.REQ.QUERY.COMMAND.contains("select")

表1. エンティティとポリシーの名前と値

コマンドラインインターフェイスを使用して DataStream をプライマリ/セカンダリデータベース設定用に設定するには

コマンドプロンプトで、次のように入力します。

add db user user1 -password user1

add service Svc_mysql_1 198.51.100.5 mysql 3306

add service Svc_mysql_2 198.51.100.6 mysql 3306

add service Svc_mysql_3 198.51.100.7 mysql 3306

add service Svc_mysql_4 198.51.100.8 mysql 3306

add lb monitor lb_mon1 MYSQL-ECV -sqlQuery "select * from table1;" -evalrule "mysql.res.atleast_rows_count(1)" -database "NS" -userName  "user1"

add lb vserver Lb_vsr_mysql_primary mysql 198.51.100.201 3306

add lb vserver Lb_vsr_mysql_secondary mysql 198.51.100.202 3306

bind lb vserver Lb_vsr_mysql_primary svc_mysql_1

bind lb vserver Lb_vsr_mysql_secondary svc_mysql_2

bind lb vserver Lb_vsr_mysql_secondary svc_mysql_3

bind lb vserver Lb_vsr_mysql_secondary svc_mysql_4

add cs vserver Cs_vsr_mysql_1 mysql 198.51.100.161 3306

add cs policy Cs_select –rule "MYSQL.REQ.QUERY.COMMAND.contains("select")"

bind cs vserver Cs_vsr_mysql_1 Lb_vsr_mysql_primary

bind cs vserver Cs_vsr_mysql_1 Lb_vsr_mysql_secondary –policy Cs_select –priority 10

bind service Svc_mysql_1 -monitorName lb_mon1

bind service Svc_mysql_2 -monitorName lb_mon1

bind service Svc_mysql_3 -monitorName lb_mon1

bind service Svc_mysql_4 -monitorName lb_mon1
<!--NeedCopy-->
ユースケース 1: プライマリ/セカンダリデータベースアーキテクチャの DataStream を構成する