MicroStrategy ONE
Load Balancer e Clustering per Library: flusso di lavoro di installazione di esempio
Installa e configura il server Redis
- Per installare Redis, vedere Nozioni di base su Redis.
- Esegui il server Redis.
-
Verificare se Redis funziona correttamente inviando un comando "PING".
redis-cli
.Se il server Redis è valido, verrà risposto un "PONG".
Copia127.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
oredis.windows-service.conf
), aggiungere/modificare ilbind
ingresso abind 0.0.0.0
- Salva la modifica e riavvia il server Redis
- Nel file di configurazione di Redis (
Configurare il server di collaborazione
-
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>",
.......
} - Salvare i file di configurazione e riavviare i server di collaborazione.
-
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.
......
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;
}
......
}
......