MicroStrategy ONE

Balanceador de carga e clustering para Library: Exemplo de fluxo de trabalho de configuração

Instalar e configurar o servidor Redis

  1. Para instalar o Redis, consulte Introdução ao Redis.
  2. Execute o servidor Redis.
  3. Verifique se o Redis está funcionando corretamente enviando um comando 'PING' em redis-cli.

    Um 'PONG' será respondido se o Servidor Redis estiver bom.

    Copiar
    127.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 ou redis.windows-service.conf), adicione/altere o bind entrada para bind 0.0.0.0
    • Salve a modificação e reinicie o Redis Server

Configurar o servidor de colaboração

  1. 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>",
    .......
    }

     

  2. Salve os arquivos de configuração e reinicie os servidores de colaboração.
  3. 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.

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;
    }

    ......

}

......