Equilibrio de carga de SQL Server División de operaciones de lectura/escritura

Equilibrio de carga de SQL Server División de operaciones de lectura/escritura

Hola Tenemos 3 nodos de SQL Server 2014 Standard Edition uno de ellos como primario y el otro como Replicación del Primario usando base de datos de Replicación Transaccional

Queremos utilizar los otros 2 nodos para leer operaciones y reducir la carga del nodo principal.

¿Cómo podríamos configurar en un equilibrador de carga como HA Proxy para dividir las operaciones de lectura de las escrituras y enviar a los nodos 2 y 3 solo operaciones de lectura? ¿O deberíamos utilizar otro equilibrador de carga que lo permita?

Respuesta1

¿Cómo podríamos configurar en un equilibrador de carga como HA Proxy para dividir las operaciones de lectura de las escrituras y enviar a los nodos 2 y 3 solo operaciones de lectura?

De nada. No hay manera de que un balanceador de carga sepa lo que sucede en una conexión de SQL Server y comprenda lógicamente qué puede y qué no puede considerarse de solo lectura, de solo escritura o mixto (que es una escritura), especialmente no como la carga. El equilibrador no puede mirar hacia adelante en el tiempo. Puedo conectarme al servidor SQL, iniciar una transacción, realizar una operación de lectura Y LUEGO INICIAR UNA ESCRITURA. ¿Cómo sabría que tengo la intención de escribir cuando decida el equilibrio de carga? No existe una manera lógica de manejar esto sin mirar hacia adelante en el tiempo.

La forma en que esto normalmente se hace es teniendo diferentes conexiones en el nivel de la aplicación y hacer que la aplicación decida cuál usar. Después de todo, uno asumiría que los programadores son lo suficientemente inteligentes como para saber si pretenden una conexión solo para leer o tal vez escribir en la misma conexión/transacción en una etapa posterior.

información relacionada