MicroStrategy ONE

Balanceador de carga y agrupación en clústeres para Library: Ejemplo de flujo de trabajo de configuración

Instalar y configurar el servidor Redis

  1. Para instalar Redis, consulte Empezando con Redis.
  2. Ejecute el servidor Redis.
  3. Compruebe si Redis funciona correctamente enviando un comando 'PING' en redis-cli.

    Se responderá un 'PONG' si Redis Server está bien.

    Copiar
    127.0.0.1:6379> ping
    PONG
    127.0.0.1:6379>

    Los servidores de colaboración requieren una URL para conectarse al servidor Redis en ejecución para fines de agrupación horizontal.

    Ejemplo: redis://redis_host_machine:6379

    Modifique el archivo de configuración de Redis para que pueda aceptar tráfico externo.

    • En el archivo de configuración de Redis (redis.conf o redis.windows-service.conf), agregar/cambiar el bind entrada a bind 0.0.0.0
    • Guarde la modificación y reinicie Redis Server

Configurar el servidor de colaboración

  1. Para todos los servidores de colaboración instalados en diferentes máquinas, configure la URL del servidor Redis, la URL del balanceador de carga web y el modo de agrupación en clústeres en los archivos de configuración:

    Copiar
    {
    "port": 3000,
    "dataSource": {"username": "mstr_collab","password": "xxx"},
    "logging": true,
    "authorizationServerUrl":"<web_load_balancer_url>/api",
    "scaling": "horizontal","redisServerUrl": 
    "<redis_server_url>",
    .......
    }

     

  2. Guarde los archivos de configuración y reinicie los servidores de colaboración.
  3. Asegúrese de que todos los servidores de colaboración estén funcionando correctamente visitando su URL individual/estado. Le indicará el estado real de la instancia del servidor de colaboración. Por ejemplo, el servidor de colaboración que aparece a continuación en realidad está en pausa debido a que los servidores Postgres y Redis son inaccesibles.

    Copiar
    {
    "version":"11.0.0.720",
    "enableTls":false,
    "scaling":"horizontal",
    "logging":true,
    "state":"paused",
    "reason":"The following dependent services are unavailable: DB Service, Redis Server",
    "main":
    {
    "cpu":{"current":0,"max":17},
    "memory":{"current":62758912,"max":85626880},
    "connections":{"total":12,"current":4,"max":11},
    "messages":{"processed":5},
    "restCalls":{"received":3},
    "up_since":"2018-4-18 02:12:42","pid":900
    }
    }

     

Configurar el servidor del equilibrador de carga web

El equilibrador de carga debe utilizar "sesiones fijas" para garantizar que los clientes sean dirigidos a la instancia que estableció la sesión inicial. También debería admitir el protocolo Web Socket (wss:), que se basa en el protocolo de actualización HTTP 1.1.

Por ejemplo, a continuación se muestra la configuración para servidores de colaboración agrupados horizontalmente, cuando se utiliza NGINX como equilibrador de carga web.

Copiar
......

http {
    ......

    upstream collabServer {
    ip_hash;             # this is a must, ensures that we are sticky to the IP to enable a correct socket.io handshake
    server collabServer1:3000;    # provide the list of the Collaboration servers from here
    server collabServer2:3000;
    server collabServer3:3000;
    }
    
    location /socket.io/ {                    # API Pattern for socket.io handshake
        proxy_http_version 1.1;                # Required for proper HTTP upgrade protocol
        proxy_set_header Upgrade $http_upgrade;     # This is a Hop-by-Hop header–must pass through manually
        proxy_set_header Connection "upgrade";      # Another hop-by-hop header
        proxy_pass http://collabServer/socket.io/;      # Directs the request to a server in upstream "collabServer"
    }

    location /status {                    # forward the /status API to one server from the CollabServer list
        proxy_pass http://collabServer/status;
    }

    ......

}

......