Strategy ONE
Lastenausgleichsmodul und Clustering für Library: Beispiel-Setup-Workflow
Installieren und Konfigurieren des Redis-Servers
- Informationen zur Installation von Redis finden Sie unter Erste Schritte mit Redis.
- Führen Sie den Redis-Server aus.
-
Überprüfen Sie, ob Redis ordnungsgemäß funktioniert, indem Sie einen PING-Befehl senden
redis-cli
.Wenn der Redis-Server einwandfrei funktioniert, wird eine „PONG“-Antwort ausgegeben.
Kopieren127.0.0.1:6379> ping
PONG
127.0.0.1:6379>Collaboration-Server benötigen für die horizontale Clusterbildung eine URL für die Verbindung mit dem laufenden Redis-Server.
Beispiel:
redis://redis_host_machine:6379
Ändern Sie die Redis-Konfigurationsdatei, sodass sie externen Datenverkehr akzeptieren kann.
- In der Redis-Konfigurationsdatei (
redis.conf
oderredis.windows-service.conf
), hinzufügen/ändernbind
Eintrag zubind 0.0.0.0
- Änderungen speichern und Redis Server neu starten
- In der Redis-Konfigurationsdatei (
Konfigurieren des Collaboration-Servers
-
Legen Sie für alle auf verschiedenen Computern installierten Collaboration-Server die Redis-Server-URL, die URL des Web-Load-Balancers und den Clustermodus in den Konfigurationsdateien fest:
Kopieren{
"port": 3000,
"dataSource": {"username": "mstr_collab","password": "xxx"},
"logging": true,
"authorizationServerUrl":"<web_load_balancer_url>/api",
"scaling": "horizontal","redisServerUrl":
"<redis_server_url>",
.......
} - Speichern Sie die Konfigurationsdateien und starten Sie die Collaboration-Server neu.
-
Stellen Sie sicher, dass alle Collaboration-Server ordnungsgemäß laufen, indem Sie ihre individuellen /status-URLs aufrufen. Es zeigt den tatsächlichen Status der Collaboration-Serverinstanz an. Beispielsweise ist der unten aufgeführte Collaboration-Server tatsächlich angehalten, da die Postgres- und Redis-Server nicht erreichbar sind.
Kopieren{
"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
}
}
Konfigurieren des Web Load Balancer-Servers
Der Load Balancer muss „Sticky Sessions“ verwenden, um sicherzustellen, dass die Clients zu der Instanz weitergeleitet werden, die die ursprüngliche Sitzung hergestellt hat. Es sollte auch das Web Socket-Protokoll (wss:) unterstützen, das auf dem HTTP 1.1 Upgrade-Protokoll basiert.
Nachfolgend sehen Sie beispielsweise die Konfiguration für horizontal geclusterte Collaboration-Server bei Verwendung von NGINX als Web-Load Balancer.
......
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;
}
......
}
......