MicroStrategy ONE
Balanceador de carga e clustering para Library: Exemplo de fluxo de trabalho de configuração
Instalar e configurar o servidor Redis
- Para instalar o Redis, consulte Introdução ao Redis.
- Execute o servidor Redis.
-
Verifique se o Redis está funcionando corretamente enviando um comando 'PING' em
redis-cli
.Um 'PONG' será respondido se o Servidor Redis estiver bom.
Copiar127.0.0.1:6379> ping
PONG
127.0.0.1:6379>Os servidores de colaboração exigem uma URL para se conectar ao servidor Redis em execução para fins de cluster horizontal.
Exemplo:
redis://redis_host_machine:6379
Modifique o arquivo de configuração do Redis para que ele possa aceitar tráfego externo.
- No arquivo de configuração do Redis (
redis.conf
ouredis.windows-service.conf
), adicione/altere obind
entrada parabind 0.0.0.0
- Salve a modificação e reinicie o Redis Server
- No arquivo de configuração do Redis (
Configurar o servidor de colaboração
-
Para todos os servidores Collaboration instalados em máquinas diferentes, defina o URL do servidor Redis, o URL do balanceador de carga da web e o modo de cluster nos arquivos de configuração:
Copiar{
"port": 3000,
"dataSource": {"username": "mstr_collab","password": "xxx"},
"logging": true,
"authorizationServerUrl":"<web_load_balancer_url>/api",
"scaling": "horizontal","redisServerUrl":
"<redis_server_url>",
.......
} - Salve os arquivos de configuração e reinicie os servidores de colaboração.
-
Certifique-se de que todos os servidores de colaboração estejam funcionando corretamente visitando seu URL /status individual. Ele informará o estado real da instância do servidor de colaboração. Por exemplo, o servidor de colaboração abaixo está realmente pausado devido a servidores Postgres e Redis inacessíveis.
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 o servidor do balanceador de carga da Web
O balanceador de carga deve utilizar "sessões fixas" para garantir que os clientes sejam direcionados para a instância que estabeleceu a sessão inicial. Ele também deve suportar o protocolo Web Socket (wss:), que depende do protocolo HTTP 1.1 Upgrade.
Por exemplo, a seguir está a configuração para servidores de colaboração agrupados horizontalmente, ao usar o NGINX como balanceador de carga da 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;
}
......
}
......