Strategy ONE

Consideraciones sobre el equilibrio de carga y los clústeres para Library y Colaboration Server

Al implementar MicroStrategy Library en un entorno de carga equilibrada, hay varios puntos importantes que se deben tener en cuenta:

  1. El MicroStrategy Collaboration Service se puede agrupar en clústeres tanto horizontal como verticalmente. Ver MicroStrategy Colaboration Server en clústeres para obtener instrucciones.

    El servicio se puede implementar detrás de un equilibrador de carga, pero depende de una instancia de servidor de Redis para garantizar la distribución adecuada de los mensajes entre las distintas instancias. El equilibrador de carga debe utilizar "sesiones fijas" para garantizar que los clientes sean dirigidos a la instancia que estableció la sesión inicial. El equilibrador de carga también debe admitir el protocolo Web Socket (wss:), que se basa en el protocolo de actualización HTTP 1.1.

    VerTopología de implementación para obtener más información acerca de la configuración de Redis.

  2. Las aplicaciones de servidor de MicroStrategy Web y Library pueden agruparse en clústeres detrás de un equilibrador de carga con cualquier cantidad de instancias. Sin embargo, el equilibrador de carga debe utilizar "sesiones fijas" para garantizar que los clientes sean dirigidos a la instancia que estableció la sesión inicial.
  3. Al implementar un clúster de servidores de MicroStrategy Library, los servidores de Colaboración deben configurarse para apuntar al equilibrador de carga de Web, en lugar de a una instancia específica, para utilizar el clúster por completo.
  4. Para utilizar al máximo un clúster de servidores de MicroStrategy Collaboration, el servidor de MicroStrategy Library se debe configurar para que apunte al equilibrador de carga de Web, en lugar de a una instancia específica.
  5. Dado que tanto los navegadores de web como las aplicaciones móviles se conectan a él directamente, el puerto del servidor de MicroStrategy Collaboration (por defecto :3000 ) debe estar accesible y abierto a través del equilibrador de carga.

    El puerto del servidor de Colaboración puede cambiar su valor predeterminado especificándolo en el config.json archivo.

  6. Dado que tanto los navegadores de web como las aplicaciones móviles se conectan a él directamente, el servidor de MicroStrategy Library (por defecto :8443 ) debe estar accesible y abierto a través del equilibrador de carga.

Topología de implementación

En el diagrama, hay un único equilibrador de carga con un nombre DNS externo, loadbalancer.acme.com que se utiliza para la configuración del servidor de Library y del servidor de Colaboración:

  • El servidor de Library configOverrides.properties El archivo utiliza este nombre en la services.collaboration.baseURL propiedad, como en: https://loadbalancer.acme.com:3000.
  • El servidor de Colaboración config.json El archivo utiliza este nombre en la authorizationServerUrl propiedad, como en: https://loadbalancer.acme.com:8443/MicroStrategyLibrary/api.

En esta configuración, el servidor de Colaboración especifica el escalado horizontal estableciendo dos propiedades en el config.json archivo:

  • "scaling": "horizontal"
  • "redisServerUrl": "redis://sharedmachine.acme.com:6379"

En el diagrama, hay una máquina compartida utilizada por cada una de las instancias detrás del balanceador de carga. En esta máquina existen dos servicios esenciales:

  • Servidor PostgreSQL: versión 4.0.0 o superior.
  • Servidor Redis: versión 4.0.0 o superior.

En este entorno, ambos servicios compartidos (PostgreSQL Server y Redis Server) pueden replicarse. En este caso, debe especificar la URL correcta en el config.json propiedades del archivo:

  • "dburl": "<PostgreSQL URL>"
  • "redisServerUrl" : "<Redis URL>"

Uso del servidor de colaboración fuera de un entorno de carga equilibrada

El servidor de colaboración se puede ejecutar fuera de un entorno de carga equilibrada, en una sola máquina. Para configurar el servidor de Colaboración de modo que se ejecute sin ningún tipo de escalado, establezca "scaling": "none".

El servidor de Colaboración también puede ejecutar varios procesos en el mismo equipo con escalado vertical si se establece lo siguiente config.json campos:

  • "scaling": "vertical"
  • "cpus": "<number of worker processes to launch>"