Citrix ADC

Cas d’utilisation 1 : Configuration de DataStream pour une architecture de base de données maître/esclave

Un scénario de déploiement couramment utilisé est l’architecture de base de données maître/esclave dans laquelle la base de données maître réplique toutes les informations vers les bases de données esclaves.

Pour l’architecture de base de données maître/esclave, vous pouvez souhaiter que toutes les requêtes WRITE soient envoyées à la base de données maître et toutes les requêtes READ aux bases de données esclave.

La figure suivante illustre les entités et les valeurs des paramètres que vous devez configurer sur l’appliance.

Figure 1. Modèle d’entité DataStream pour la configuration de la base de données maître/esclave

image localisée

Dans cet exemple de scénario, un service (SVC_MySQL_1) est créé pour représenter la base de données principale et est lié à un serveur virtuel d’équilibrage de charge (LB_VSR_MySQL_Master). Trois autres services (SVC_MySQL_2, SVC_MySQL_3 et SVC_MySQL_4) sont créés pour représenter les trois bases de données esclaves, et ils sont liés à un autre serveur virtuel d’équilibrage de charge (LB_VSR_MySQL_Slave).

Un serveur virtuel de commutation de contenu (CS_VSR_MySQL_1) est configuré avec des stratégies associées pour envoyer toutes les requêtes WRITE au serveur virtuel d’équilibrage de charge, LB_VSR_MySQL_master, et toutes les requêtes READ au serveur virtuel d’équilibrage de charge, LB_VSR_MySQL_slave.

Lorsqu’une demande atteint le serveur virtuel de commutation de contenu, le serveur virtuel applique les stratégies de commutation de contenu associées à cette demande. Après avoir évalué les stratégies, le serveur virtuel de commutation de contenu achemine la demande vers le serveur virtuel d’équilibrage de charge approprié, qui l’envoie au service approprié.

Le tableau suivant répertorie les noms et valeurs des entités ainsi que la stratégie configurée sur l’appliance Citrix ADC.

Type d’entité Nom Adresse IP Protocole Port Expression.
Services Svc_mysql_1 10.102.29.5 MYSQL 3306 SO
  Svc_mysql_2 10.102.29.6 MYSQL 3306 SO
  Svc_mysql_3 10.102.29.7 MYSQL 3306 SO
  Svc_mysql_4 10.102.29.8 MYSQL 3306 SO
Équilibrage de charge des serveurs virtuels Lb_vsr_mysql_master 10.102.29.201 MYSQL 3306 SO
  Lb_vsr_mysql_slave 10.102.29.202 MYSQL 3306 SO
Serveur virtuel de commutation de contenu Cs_vsr_mysql_1 10.102.29.161 MYSQL 3306 SO
Stratégie de commutation de contenu Cs_select SO SO SO “MYSQL.REQ.QUERY.COMMAND.contains(“select”)”

Tableau 1. Noms et valeurs des entités et des stratégies

Pour configurer DataStream pour une configuration de base de données maître/esclave à l’aide de l’interface de ligne de commande

À l’invite de commandes, tapez

add service Svc_mysql_1 10.102.29.5 mysql 3306

add service Svc_mysql_2 10.102.29.6 mysql 3306

add service Svc_mysql_3 10.102.29.7 mysql 3306

add service Svc_mysql_4 10.102.29.8 mysql 3306

add lb vserver Lb_vsr_mysql_master mysql 10.102.29.201 3306

add lb vserver Lb_vsr_mysql_slave mysql 10.102.29.202 3306

bind lb vserver Lb_vsr_mysql_master svc_mysql_1

bind lb vserver Lb_vsr_mysql_slave svc_mysql_2

bind lb vserver Lb_vsr_mysql_slave svc_mysql_3

bind lb vserver Lb_vsr_mysql_slave svc_mysql_4

add cs vserver Cs_vsr_mysql_1 mysql 10.102.29.161 3306

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

bind cs vserver Cs_vsr_mysql_1 Lb_vsr_mysql_master

bind cs vserver Cs_vsr_mysql_1 Lb_vsr_mysql_slave –policy Cs_select –priority 10

Cas d’utilisation 1 : Configuration de DataStream pour une architecture de base de données maître/esclave