Strategy ONE

Lastenausgleichsmodul und Clustering für Library: Beispiel-Setup-Workflow

Installieren und Konfigurieren des Redis-Servers

  1. Informationen zur Installation von Redis finden Sie unter Erste Schritte mit Redis.
  2. Führen Sie den Redis-Server aus.
  3. Ü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.

    Kopieren
    127.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 oder redis.windows-service.conf), hinzufügen/ändern bind Eintrag zu bind 0.0.0.0
    • Änderungen speichern und Redis Server neu starten

Konfigurieren des Collaboration-Servers

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

     

  2. Speichern Sie die Konfigurationsdateien und starten Sie die Collaboration-Server neu.
  3. 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.

Kopieren
......

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

    ......

}

......