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
- Para instalar Redis, consulte Empezando con Redis.
- Ejecute el servidor Redis.
-
Compruebe si Redis funciona correctamente enviando un comando 'PING' en
redis-cli
.Se responderá un 'PONG' si Redis Server está bien.
Copiar127.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
oredis.windows-service.conf
), agregar/cambiar elbind
entrada abind 0.0.0.0
- Guarde la modificación y reinicie Redis Server
- En el archivo de configuración de Redis (
Configurar el servidor de colaboración
-
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>",
.......
} - Guarde los archivos de configuración y reinicie los servidores de colaboración.
-
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.
......
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;
}
......
}
......