MicroStrategy ONE

Load Balancer e Clustering per Library: flusso di lavoro di installazione di esempio

Installa e configura il server Redis

  1. Per installare Redis, vedere Nozioni di base su Redis.
  2. Esegui il server Redis.
  3. Verificare se Redis funziona correttamente inviando un comando "PING". redis-cli.

    Se il server Redis è valido, verrà risposto un "PONG".

    Copia
    127.0.0.1:6379> ping
    PONG
    127.0.0.1:6379>

    I server di collaborazione richiedono un URL per connettersi al server Redis in esecuzione per scopi di clustering orizzontale.

    Esempio: redis://redis_host_machine:6379

    Modifica il file di configurazione Redis in modo che possa accettare traffico esterno.

    • Nel file di configurazione di Redis (redis.conf o redis.windows-service.conf), aggiungere/modificare il bind ingresso a bind 0.0.0.0
    • Salva la modifica e riavvia il server Redis

Configurare il server di collaborazione

  1. Per tutti i server di collaborazione installati su macchine diverse, impostare l'URL del server Redis, l'URL del bilanciatore del carico web e la modalità clustering nei file di configurazione:

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

     

  2. Salvare i file di configurazione e riavviare i server di collaborazione.
  3. Assicurati che tutti i server di collaborazione funzionino correttamente visitando il loro URL individuale/status. Indicherà lo stato effettivo dell'istanza del server di collaborazione. Ad esempio, il server di collaborazione riportato di seguito è effettivamente sospeso a causa di server Postgres e Redis irraggiungibili.

    Copia
    {
    "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
    }
    }

     

Configurare il server Web Load Balancer

Il sistema di bilanciamento del carico deve utilizzare "sessioni permanenti" per garantire che i client vengano indirizzati all'istanza che ha stabilito la sessione iniziale. Dovrebbe supportare anche il protocollo Web Socket (wss:), che si basa sul protocollo di aggiornamento HTTP 1.1.

Ad esempio, quella che segue è la configurazione per i server di collaborazione in cluster orizzontale, quando si utilizza NGINX come bilanciatore del carico web.

Copia
......

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

    ......

}

......