Citrix ADC

Caso de uso 1: Configuración de DataStream para una Arquitectura de Base de Datos Maestro/Esclavo

Un caso de implementación comúnmente utilizado es la arquitectura de base de datos maestro/esclavo en la que la base de datos maestra replica toda la información en las bases de datos esclavas.

Para la arquitectura de base de datos maestro/esclavo, es posible que quiera que todas las solicitudes WRITE se envíen a la base de datos maestra y todas las solicitudes READ a las bases de datos esclavas.

En la siguiente figura se muestran las entidades y los valores de los parámetros que debe configurar en el dispositivo.

Ilustración 1. Modelo de entidad de DataStream para configuración de base de datos maestro/esclava

Imagen localizada

En este caso de ejemplo, se crea un servicio (svc_mysql_1) para representar la base de datos maestra y está enlazado a un servidor virtual de equilibrio de carga (lb_vsr_mysql_master). Se crean otros tres servicios (svc_mysql_2, svc_mysql_3 y svc_mysql_4) para representar las tres bases de datos esclavas y están enlazados a otro servidor virtual de equilibrio de carga (lb_vsr_mysql_slave).

Un servidor virtual de conmutación de contenido (CS_VSR_MySQL_1) está configurado con directivas asociadas para enviar todas las solicitudes WRITE al servidor virtual de equilibrio de carga, LB_VSR_MySQL_Master, y todas las solicitudes READ al servidor virtual de equilibrio de carga, LB_VSR_MySQL_Slave.

Cuando una solicitud llega al servidor virtual de conmutación de contenido, el servidor virtual aplica las directivas de conmutación de contenido asociadas a esa solicitud. Después de evaluar las directivas, el servidor virtual de conmutación de contenido enruta la solicitud al servidor virtual de equilibrio de carga adecuado, que la envía al servicio adecuado.

En la tabla siguiente se enumeran los nombres y valores de las entidades y la directiva configurada en el dispositivo Citrix ADC.

Tipo de entidad Name Dirección IP Protocol Puerto Expresión
Servicios Svc_mysql_1 10.102.29.5 MYSQL 3306 n/d
  Svc_mysql_2 10.102.29.6 MYSQL 3306 n/d
  Svc_mysql_3 10.102.29.7 MYSQL 3306 n/d
  Svc_mysql_4 10.102.29.8 MYSQL 3306 n/d
Servidores virtuales de equilibrio de carga lb_vsr_mysql_master 10.102.29.201 MYSQL 3306 n/d
  lb_vsr_mysql_slave 10.102.29.202 MYSQL 3306 n/d
Servidor virtual de conmutación de contenido Cs_vsr_mysql_1 10.102.29.161 MYSQL 3306 n/d
Directiva de conmutación de contenido CS_Select n/d n/d n/d “Mysql.req.query.command.contains (“seleccionar”)”

Tabla 1. Nombres y valores de entidades y directivas

Para configurar DataStream para una configuración de base de datos maestro/esclavo mediante la interfaz de línea de comandos

En el símbolo del sistema, escriba:

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

Caso de uso 1: Configuración de DataStream para una Arquitectura de Base de Datos Maestro/Esclavo