MicroStrategy ONE

Consideraciones sobre el equilibrador de carga y la agrupación en clústeres para Library y servidor de colaboración

Al implementar MicroStrategy Library En un entorno de carga equilibrada, hay varios puntos importantes a considerar:

  1. El MicroStrategy El servicio de colaboración se puede agrupar tanto horizontal como verticalmente. Ver Agrupar el MicroStrategy Servidor de colaboración para obtener instrucciones.

    El servicio se puede implementar detrás de un equilibrador de carga, pero depende de una instancia del servidor 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 sobre la configuración de Redis.

  2. El MicroStrategy Web y Library Las aplicaciones de servidor se pueden agrupar detrás de un equilibrador de carga con cualquier número 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 grupo de MicroStrategy Library servidores, los servidores de colaboración deben configurarse para apuntar al equilibrador de carga web, en lugar de a una instancia específica, para utilizar completamente el clúster.
  4. Para utilizar plenamente un grupo de MicroStrategy Servidores de colaboración, los MicroStrategy Library El servidor debe configurarse para que apunte al equilibrador de carga web, en lugar de a una instancia específica.
  5. Dado que tanto los navegadores web como las aplicaciones móviles se conectarán directamente a él, el MicroStrategy Puerto del servidor de colaboración (predeterminado :3000) debe ser accesible y abierto a través del equilibrador de carga.

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

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

Topología de implementación

En el diagrama, hay un único balanceador de carga con un nombre DNS externo, loadbalancer.acme.com que se utiliza para ambos Library Configuración del servidor y del servidor de colaboración:

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

En esta configuración, el servidor de colaboración especifica la escala 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 de 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 para que se ejecute sin ningún tipo de escalado, establezca "scaling": "none".

El servidor de colaboración también puede ejecutar múltiples procesos en la misma máquina con escalamiento vertical configurando lo siguiente config.json campos:

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