Für verteilte PlattformenFür z/OS-Plattformen[17.0.0.1 und höher]

Dynamic Routing für mehrere Liberty-Verbünde konfigurieren

Sie können das Feature "Dynamic Routing" für die Weiterleitung von Anwendungsanforderungen an alle Anwendungsinstanzen konfigurieren, wenn die Anwendung in mehreren Verbünden implementiert wird.

Vorbereitende Schritte

Führen Sie die Produktinstallationsschritte unter Dynamisches Routing für Liberty-Verbünde konfigurieren aus.

Informationen zu diesem Vorgang

Intelligent Management für Web-Server ermöglicht die Weiterleitung von HTTP-Anforderungen an Member von Liberty-Verbünden, ohne dass die Konfigurationsdatei für das WebSphere-Plug-in bei einer Änderung der Umgebung durch einen Administrator neu generiert werden muss. Wenn Server, Cluster-Member, Anwendungen oder virtuelle Hosts hinzugefügt, entfernt, gestartet, gestoppt oder modifiziert werden, werden die neuen Informationen dynamisch für das WebSphere-Plug-in bereitgestellt. Anforderungen werden ausgehend von aktuellen Informationen weitergeleitet.

Intelligent Management für Web-Server leitet Anwendungsanforderungen an alle Anwendungsinstanzen weiter, wenn die Anwendung in mehreren Verbünden implementiert wird. Wenn Anforderungen in älteren Versionen an mehrere Verbünde weitergleitet wurden, war es nicht zulässig, eine bestimmte Anwendung in mehr als einem Verbund zu installieren.

Wenn Sie Intelligent Management für Web-Server für die Weiterleitung von HTTP-Anforderungen an Liberty-Verbünde verwenden möchten, aktivieren Sie das Feature dynamicRouting-1.0 in allen Verbundcontrollern des Verbunds. Das Feature dynamicRouting-1.0 stellt einen Dynamic Routing-Service bereit, der Intelligent Management für Web-Server Routing-Informationen bereitstelle. Verwenden Sie die Befehlsaktionen setup, genPluginCfg und genKeystore, um den Keystore für die sichere Kommunikation zwischen dem Plug-in und dem Dynamic Routing-Service sowie eine Plug-in-Konfigurationsdatei für Intelligent Management für Web-Server im WebSphere-Plug-in zu generieren.

Wichtig: Wenn Sie Anforderungen an dieselbe Anwendung in mehreren Verbünden weiterleiten möchten, muss jeder Verbund einen eindeutigen Namen haben. Der eindeutige Name eines Verbunds kann wie in einem der beiden Beispiele angezeigt werden:
  • Verwenden Sie das Attribut connectorClusterName im XML-Element <dynamicRouting> in der Datei server.xml des Verbundcontrollers. Alle Controller in demselben Verbund müssen denselben Wert für das Attribut connectorClusterName verwenden. Controller in anderen Verbünden müssen andere Werte für das Attribut connectorClusterName verwenden. Wenn das Attribut connectorClusterName angegeben ist, überschreibt der Wert den Wert, der beim Erstellen des Verbunds mit der Option –collectiveName angegeben wurde.
  • Verwenden Sie die Option collectiveName, wenn der Verbund mit dem Befehl collective create erstellt wird.

Dynamic Routing-Controller in jedem Verbund informieren das WebSphere-Plug-in über den Status des Verbunds, sodass das Plug-in Anforderungen dynamisch für dieselbe Anwendung über mehrere Verbünde hinweg weiterleiten kann. Die Dynamic Routing-Controller informieren das WebSphere-Plug-in über jede im Verbund des Controllers verfügbare Anwendung. Daher ist dem WebSphere-Plug-in bekannt, wenn eine Anwendung in mehr als einem Verbund verfügbar ist. Alle Anforderungen an eine Anwendung werden gleichmäßig über alle entsprechenden Server verteilt, sofern eine Regel keine anderen Anweisungen enthält.

Die Funktionalität der Routing-Regeln leitet die am WebSphere-Plug-in eingehenden Anforderungen an eine bestimmte Servergruppe weiter. Zusätzlich können Anforderungen selektiv zurückgewiesen oder umgeleitet werden. Ob eine Regel auf eine eingehende Anforderung angewendet wird, wird ermittelt, indem Attribute der eingehenden Anforderungen abgeglichen werden.

Vorgehensweise

  1. Fügen Sie zum Aktivieren von Dynamic Routing in einem Controller den folgenden Code zum Tag featureManager in der Datei server.xml des Controllers hinzu.
    <feature>dynamicRouting-1.0</feature>
  2. Optional: Fügen Sie das Element <dynamicRouting> der Controllerdatei server.xml hinzu, um Eigenschaften für das dynamische Routing anzugeben.

    Die Eigenschaft connectorClusterName gibt den Namen an, den das dynamische Routing dem Verbund zuordnet. Wenn die Eigenschaft connectorClusterName nicht angegeben wird, wird der Name des Verbunds verwendet.

    Geben Sie beispielsweise im ersten Verbund den folgenden Namen bei allen Controllern an:
    <dynamicRouting connectorClusterName="collective1"/>
    Geben Sie beispielsweise im zweiten Verbund den folgenden Namen bei allen Controllern an:
    <dynamicRouting connectorClusterName="collective2"/>
    Wenn eine Verbindung fehlschlägt, gibt die Eigenschaft retryInterval die Zeit an, die gewartet wird, bevor versucht wird, eine andere Verbindung zum Controller herzustellen. Die Eigenschaft maxRetries gibt an, wie oft versucht wird, erneut eine Verbindung mit einem Verbundcontroller herzustellen, der ausgefallen ist. Sehen Sie sich hierzu das folgende Beispiel an:
    <dynamicRouting maxRetries="4" retryInterval="20" connectorClusterName="collective1"/>
     <TraceSpecification name="default" specification=":DEBUG"/>
    </dynamicRouting>
    Die generierte Datei plugin-cfg.xml enthält die ConnectorCluster-Eigenschaften. Sehen Sie sich hierzu das folgende Beispiel an:
    <IntelligentMangement>
     …
      <ConnectorCluster enabled="true" maxRetries="4" name="collective1" retryInterval="20">
      <Property name="uri" value="/ibm/api/dynamicRouting"/>
      <Connector host="controller1.acme.com" port="9444" protocol="https">
      <Property name="keyring" value="/opt/HTTPServer_Plugins/config/webServer1/plugin-key.kdb"/>
      </Connector>
     </ConnectorCluster>
     …
    </IntelligentManagement>
  3. Starten Sie alle Controller, die über das Feature "Dynamic Routing" aktiviert wurden.
  4. Fügen Sie für einen der Controller den Befehl dynamicRouting setup aus, um die Keystore- und die Plug-in-Konfigurationsdateien zu generieren.
    Wenn Sie die Artefakte, die für das dynamische Routing für mehrere Verbünde erforderlich sind, erstellen möchten, verwenden Sie die Option --collectives anstelle der Optionen --port, --host, --user oder --password. Geben Sie Verbünde im Format Verbundbenutzer:Benutzerkennwort@Verbundhost:Port an und trennen Sie die einzelnen Verbünde durch ein Komma (,) voneinander. Sehen Sie sich hierzu das folgende Beispiel an:
    ./dynamicRouting setup --collectives user1:password1@host1:port1,user2:password2@host2:port2,...
    --keystorePassword=webAS --pluginInstallRoot=/opt/HTTPServer_Plugins/ --webServerNames=webserver1

    Stellen Sie sicher, dass jeder Verbund einen eindeutigen Namen hat. Stellen Sie außerdem sicher, dass die Benutzer in den Benutzerregistrys der zugehörigen Verbünde vorhanden sind und die Administratorrolle besitzen. Wenn Sie kein Kennwort angeben, werden Sie zur Kennworteingabe aufgefordert.

    Unter finden Sie Informationen zu den Voraussetzungen für die Option --collectives.

    Weitere Informationen zum Befehl dynamicRouting setup finden Sie unter Befehl für dynamisches Routing.

  5. Kopieren Sie alle generierten plugin-key*.jks-Dateien und die Datei plugin-cfg.xml in ein temporäres Verzeichnis auf dem Web-Server-Host.

    Für die Option --collectives werden mehrere Keystore-Dateien erstellt:

    • Die Datei plugin-key.jks ermöglicht den Verbundmember-Servern in allen Verbünden, Anforderungen zu akzeptieren, die über den Web-Server weitergeleitet werden.
    • Die Datei plugin-key-Verbundname.jks stellt eine Plug-in-Schlüsseldatei für jeden Verbund bereit, der mit der Option --collectives angegeben wurde.

    Diese Dateien aktivieren das WebSphere-Plug-in für die sicher Kommunikation mit den Verbundcontrollern im bestimmten Verbund.

  6. Führen Sie auf dem Web-Server-Host den (im IHS-Paket enthaltenen) Befehl gskcmd aus, um den Keystore in das CMS-Format zu konvertieren und das persönliche Zertifikat als Standard festzulegen. Das Format CMS ist das vom WebSphere-Plug-in unterstützte Format. Sehen Sie sich hierzu das folgende Beispiel an:
    gskcmd -keydb -convert -pw  <password> -db /tmp/plugin-key.jks -old_format jks -target /tmp/plugin-key.kdb -new_format cms -stash
    gskcmd -cert -setdefault -pw <Kennwort> -db /tmp/plugin-key.kdb -label default

    Führen Sie den Befehl gskcmd für alle generierten plugin-key*.jks-Dateien aus. Ändern Sie die Optionen –db und –target, um jede Datei anzugeben.

    Für z/OS-PlattformenWeitere Informationen für z/OS finden Sie unter Keystore in das CMS-Format unter z/OS konvertieren.

  7. Kopieren Sie alle plugin-key.kdb-, plugin-key.rdb- und plugin-key.sth-Dateien, die mit dem Befehl gskcmd erstellt wurden, aus dem temporären Verzeichnis in das Verzeichnis --pluginInstallRootargument_value/config/Web-Server-Name/.
  8. Kopieren Sie die Datei plugin-cfg.xml in das Verzeichnis, das in der Anweisung WebSpherePluginConfig in der Web-Server-Datei httpd.conf angegeben ist.

    Die Datei plugin-cfg.xml wird mit der Zeilengruppe <IntelligentManagement> generiert. Wenn Dynamic Routing in einem Verbund aktiviert ist, enthält die Datei eine <Connector>-Zeilengruppe für jeden Verbundcontroller. Für das Routing mehrerer Verbünde enthält jeder Verbund eine <ConnectorCluster>-Zeilengruppe. Sehen Sie sich hierzu das folgende Beispiel an:

    <Property Name="Keyfile" Value="/opt/IBM/WebSphere/Plugins/config/webserver1/plugin-key.kdb"/>
    <Property Name="Stashfile" Value="/opt/IBM/WebSphere/Plugins/config/webserver1/plugin-key.sth"/>
    <IntelligentMangement>
     <Property name="webserverName" value="webserver1"/>
     <Property name="RoutingRulesConnectorClusterName" value="collective1"/>
     <ConnectorCluster enabled="true" maxRetries="-1" name="collective1" retryInterval="60">
      <Property name="uri" value="/ibm/api/dynamicRouting"/>
      <Connector host="controller1.acme.com" port="9444" protocol="https">
       <Property name="keyring" value="/opt/HTTPServer_Plugins/config/webserver1/plugin-key-collective1.kdb"/>
      </Connector>
     </ConnectorCluster>
    <ConnectorCluster enabled="true" maxRetries="-1" name="collective2" retryInterval="60">
      <Property name="uri" value="/ibm/api/dynamicRouting"/>
      <Connector host="controller2.acme.com" port="9444" protocol="https">
       <Property name="keyring" value="/opt/HTTPServer_Plugins/config/webserver1/plugin-key-collective2.kdb"/>
      </Connector>
     </ConnectorCluster>
    </IntelligentManagement>
  9. Starten Sie den Web-Server und beginnen Sie mit der Weiterleitung zu der im Verbund installierten Anwendung.
  10. [17.0.0.1 und höher]Optional: Erstellen Sie Routing-Regeln, um anzugeben, wie bestimmte Anforderungen verarbeitet werden.

    Routing-Regeln können verwendet werden, um

    • bestimmte Anforderungen zurückzuweisen.
    • bestimmte Anforderungen umzuleiten.
    • zuzulassen, dass bestimmte Anforderungen an ein Subset verfügbarer Server weitergeleitet werden.
    • für bestimmte Anforderungen ein Failover von einer Servergruppe auf eine andere Servergruppe zu ermöglichen.

    Weitere Informationen finden Sie in den Abschnitten Routing-Regeln für dynamisches Routing in Liberty und Routing-Regeln für dynamisches Routing in Liberty konfigurieren.

Ergebnisse

Wenn das Feature dynamicRouting-1.0 aktiviert ist, kann Intelligent Management jetzt HTTP-Anforderungen dynamisch an Liberty-Verbünde weiterleiten.


Symbol das den Typ des Artikels anzeigt. Taskartikel

Dateiname: twlp_wve_enabledynrout_multiple.html