Durch das Verteilen werden verarbeitende Aufgaben in einer Topologie auf verschiedene Experience Manager verteilt. Mit der Abladung können Sie bestimmte Experience Manager-Instanzen zur Durchführung bestimmter Verarbeitungsarten verwenden. Mit dieser gezielten Verarbeitung kann die Nutzung der verfügbaren Serverressourcen maximiert werden.
Die Abladung basiert auf den Discovery- und JobManager-Funktionen von Apache Sling. Zur Verwendung des Offloading fügen Sie einer Topologie Experience Manager-Cluster hinzu und identifizieren die Auftragsthemen, die vom Cluster verarbeitet werden. Cluster bestehen aus einer oder mehr Experience Manager-Instanzen, sodass eine Instanz als Cluster gilt.
Weitere Informationen zum Hinzufügen von Instanzen zu einer Topologie finden Sie unter Verwalten von Topologien.
Mit den JobManager- und JobConsumer-Diensten von Apache Sling können Aufträge erstellt werden, die in einer Topologie verarbeitet werden:
Wenn der JobManager-Dienst einen Auftrag erstellt, wählt das Abladungs-Framework einen Experience Manager-Cluster in der Topologie aus, um diesen auszuführen:
Weitere Informationen zur Optimierung der Auftragsverteilung finden Sie unter Konfigurieren der Themenverarbeitung.
Wenn das Offloading-Framework einen Cluster auswählt, um einen Auftrag auszuführen, und der Cluster aus mehreren Instanzen besteht, bestimmt die Sling-Verteilung, welche Instanz im Cluster den Auftrag ausführt.
Das Abladungs-Framework unterstützt Auftrags-Payloads, die Aufträge mit Ressourcen im Repository verknüpfen. Auftrags-Payloads sind hilfreich, wenn Aufträge für Verarbeitungsressourcen erstellt werden und der Auftrag an einen anderen Computer abgeladen wird.
Bei der Erstellung eines Auftrags befindet sich die Payload nur auf der Instanz, die den Auftrag erstellt. Beim Abladen des Auftrags stellen Replikationsagenten sicher, dass die Payload auf der Instanz erstellt wird, die den Auftrag schließlich verarbeitet. Nach Ausführung des Auftrags sorgt die Rückwärtsreplikation dafür, dass die Payload wieder auf die Instanz zurück kopiert wird, die den Auftrag erstellt hat.
Topologien sind lose verknüpfte Experience Manager-Cluster, die an der Abladung beteiligt sind. Ein Cluster besteht aus einer oder mehreren Experience Manager-Serverinstanzen (eine einzelne Instanz wird als Cluster betrachtet).
Jede Experience Manager-Instanz führt die folgenden abladungsbezogenen Dienste aus:
Der Discovery-Dienst aller Topologiemitglieder verweist auf den Topologie-Connector eines der Mitglieder. Im nachfolgenden Abschnitt wird dieses Mitglied als Stamm-Mitglied bezeichnet.
Jeder Cluster in der Topologie enthält eine Instanz, die als Leader erkannt wird. Der Cluster-Leader interagiert für die anderen Cluster-Mitglieder mit der Topologie. Wenn der Leader den Cluster verlässt, wird automatisch ein neuer Leader ausgewählt.
Mit dem Topologie-Browser können Sie den Status der Topologie überprüfen, zu der die Experience Manager-Instanz gehört. Der Topologie-Browser zeigt die Cluster und Instanzen der Topologie.
Für jeden Cluster sehen Sie eine Liste von Clustermitgliedern, die die Reihenfolge angibt, in der die einzelnen Mitglieder dem Cluster beigetreten sind, und welches Mitglied der Leader ist. Die Eigenschaft „Aktuell“ gibt die Instanz an, die Sie derzeit verwalten.
Für jede Instanz des Clusters werden verschiedene topologiebezogene Eigenschaften angezeigt:
Klicken Sie auf der Touch-optimierten Benutzeroberfläche auf die Registerkarte „Tools“. (http://localhost:4502/tools.html)
Klicken Sie im Bereich „Granite-Vorgänge“ auf „Browser-Abladung“.
Klicken Sie im Navigationsfenster auf „Topologie-Browser“.
Die zur Topologie gehörenden Cluster werden angezeigt.
Klicken Sie auf einen Cluster, um eine Liste der Instanzen im Cluster und deren ID, aktuellen Status und Leader-Status anzuzeigen.
Klicken Sie auf eine Instanzen-ID, um detaillierte Eigenschaften anzuzeigen.
Sie können auch die Web-Konsole zum Anzeigen von Topologie-Informationen verwenden. Die Konsole stellt weitere Informationen zu den Topologie-Clustern bereit:
Gehen Sie wie folgt vor, um die Seite „Topology Management“ der Web-Konsole zu öffnen:
Öffnen Sie die Web-Konsole in Ihrem Browser. (http://localhost:4502/system/console)
Klicken Sie auf „Main“ > „Topology Management“.
Der ressourcenbasierte Apache Sling-Discovery-Dienst wird auf jeder Instanz ausgeführt und steuert, wie Experience Manager-Instanzen mit einer Topologie interagieren.
Der Discovery-Dienst sendet regelmäßig POST-Anforderungen (Heartbeats) an Topologie-Connector-Dienste, um Verbindungen mit der Topologie herzustellen und aufrechtzuerhalten. Der Topology Connector-Dienst verwaltet eine Zulassungsliste von IP-Adressen oder Hostnamen, die der Topologie beitreten dürfen:
Verwenden Sie die Web-Konsole oder einen „slign:OsgiConfig“-Knoten, um die folgenden Eigenschaften des Dienstes „org.apache.sling.discovery.impt.Config“ zu konfigurieren:
Eigenschaftsname | OSGi-Name | Beschreibung | Standardwert |
---|---|---|---|
Heartbeat-Timeout (Sekunden) | heartbeatTimeout | Die Zeit in Sekunden, die auf eine Heartbeat-Antwort gewartet wird, bevor die Targeting-Instanz als nicht verfügbar betrachtet wird. | 20 |
Heartbeat-Intervall (Sekunden) | heartbeatInterval | Die Zeit in Sekunden zwischen Heartbeats. | 15 |
Minimale Ereignis-Verzögerung (Sekunden) | minEventDelay | Wenn eine Änderung an der Topologie eintritt, die Zeitdauer, um die Änderung des Status von TOPOLOGY_CHANGING zu TOPOLOGY_CHANGED zu verzögern. Jede Änderung, die auftritt, wenn der Status TOPOLOGY_CHANGING lautet, erhöht die Verzögerung um diesen zeitlichen Wert. Diese Verzögerung verhindert, dass Listener von Ereignissen überflutet werden. Soll keine Verzögerung verwendet werden, geben Sie „0“ oder eine negative Zahl an. |
3 |
Topologie-Connectoren-URLs | topologyConnectorUrls | Die URLs der Topologie-Connector-Dienste zum Senden von Heartbeat-Nachrichten. | http://localhost:4502/libs/sling/topology/connector |
Topology Connector-Zulassungsliste | topologyConnectorWhitelist | Die Liste von IP-Adressen oder Host-Namen, die der lokale Topologie-Connector-Dienst in der Topologie zulässt. | localhost 127.0.0.1 |
Repository-Beschreibungsname | leaderElectionRepositoryDescriptor | <kein Wert> |
Gehen Sie wie folgt vor, um eine CQ-Instanz mit dem Stamm-Mitglied einer Topologie zu verbinden. Die Instanz verweist dann auf die Topologie-Connector-URL des Stamm-Mitglieds der Topologie. Führen Sie diese Schritte für alle Topologiemitglieder durch.
Führen Sie die folgenden Schritte für das Stamm-Mitglied der Topologie aus. Dadurch werden die Namen der anderen Topologiemitglieder der Zulassungsliste für den Discovery-Dienst hinzugefügt.
Verwenden Sie die Browser-Abladung, um die Themenverarbeitung für die Experience Manager-Instanzen in der Topologie zu konfigurieren. Sie können die von jeder Instanz verarbeiteten Themen angeben. Beispiel: Um die Topologie so zu konfigurieren, dass nur eine Instanz einen bestimmten Thementyp verarbeitet, deaktivieren Sie das Thema auf allen Instanzen bis auf eine.
Aufträge werden auf Instanzen verteilt, bei denen das zugehörige Thema mithilfe der Round-Robin-Logik aktiviert wurde.
Klicken Sie auf der Touch-optimierten Benutzeroberfläche auf die Registerkarte „Tools“. (http://localhost:4502/tools.html)
Klicken Sie im Bereich „Granite-Vorgänge“ auf „Browser-Abladung“.
Klicken Sie im Navigationsfenster auf „Browser-Abladung“.
Die Abladungsthemen und die Serverinstanzen, die die Themen verarbeiten können, werden angezeigt.
Um den Verbrauch eines Themas für eine Instanz zu deaktivieren, klicken Sie unter dem Themennamen neben der Instanz auf Deaktivieren.
Um die Verarbeitung aller Themen für eine Instanz zu konfigurieren, klicken Sie auf die Instanz-ID unter einem beliebigen Thema.
Klicken Sie auf eine der folgenden Schaltflächen neben einem Thema, um das Verarbeitungsverhalten für die Instanz zu konfigurieren. Klicken Sie dann auf „Speichern“:
Hinweis: Wenn Sie die Option „Exklusiv“ für ein Thema auswählen, werden alle anderen Themen automatisch auf „Deaktiviert“ gesetzt.
Die Installation von Experience Manager umfasst mehrere implementierte JobConsumer-Dienste. Die Themen, für die diese JobConsumer-Dienste registriert sind, werden in der Browser-Abladung angezeigt. Bei den weiteren angezeigten Themen handelt es sich um von benutzerdefinierten JobConsumer-Diensten registrierte Themen. Die nachfolgende Tabelle beschreibt die Standard-JobConsumer-Dienste.
Auftragsthema | Dienst-PID | Beschreibung |
---|---|---|
/ | org.apache.sling.event.impl.jobs.deprecated.EventAdminBridge | Mit Apache Sling installiert. Verarbeitet Aufträge, die vom OSGi-Event-Admin-Dienst aus Gründen der Abwärtskompatibilität generiert werden. |
com/day/cq/Replication/job/* | com.day.cq.replication.impl.AgentManagerImpl | Ein Replizierungsagenten, der Auftragsnutzlasten repliziert. |
Der Dienst „Apache Sling Job Consumer Manager“ stellt Eigenschaften für Themen der Zulassungs- und Blockierungsliste bereit. Konfigurieren Sie diese Eigenschaften, um die Verarbeitung von bestimmten Themen auf einer Experience Manager-Instanz zu aktivieren oder zu deaktivieren.
Hinweis: Wenn die Instanz zu einer Topologie gehört, können Sie den Offload-Browser auch auf einem beliebigen Computer in der Topologie verwenden, um Themen zu aktivieren oder zu deaktivieren.
Die Logik, die die Liste der aktivierten Themen erstellt, erlaubt zunächst alle Themen, die sich auf der Zulassungsliste befinden, und entfernt dann Themen, die sich auf der Blockierungsliste befinden. Standardmäßig sind alle Themen aktiviert (der Wert für die Zulassungsliste ist *
) und keine Themen sind deaktiviert (die Blockierungsliste hat keinen Wert).
Verwenden Sie die Web-Konsole oder einen sling:OsgiConfig
-Knoten, um die folgenden Eigenschaften zu konfigurieren. Für sling:OsgiConfig
-Knoten lautet die PID des JobConsumerManager-Dienstes „org.apache.sling.event.impl.jobs.JobConsumerManager“.
Eigenschaftsname in der Web-Konsole | OSGi-ID | Beschreibung |
---|---|---|
Zulassungsliste | job.consumermanager.whitelist | Eine Liste von Themen, die vom lokalen JobManager-Dienst verarbeitet werden. Der Standardwert von * bewirkt, dass alle Themen an den registrierten TopicConsumer-Dienst gesendet werden. |
Blockierungsliste | job.consumermanager.blacklist | Eine Liste der Themen, die nicht vom JobManager-Dienst verarbeitet werden. |
Das Abladungs-Framework überträgt Ressourcen mittels Replikation zwischen Autoren- und Worker-Instanzen. Das Framework erstellt automatisch Replikationsagenten, wenn Instanzen Mitglied der Topologie werden. Die Agenten werden mit Standardwerten erstellt. Das von den Agenten zur Authentifizierung verwendete Kennwort muss manuell geändert werden.
Es ist ein bekanntes Problem bei automatisch generierten Replikationsagenten, dass neue Agenten manuell erstellt werden müssen. Befolgen Sie das unter Probleme bei der Verwendung automatisch generierter Replikationsagenten beschriebene Verfahren, bevor Sie die Agenten für die Abladung erstellen.
Erstellen Sie die Replikationsagenten, die Auftrags-Payloads zwischen Instanzen für die Abladung übertragen. Die nachfolgende Darstellung zeigt die erforderlichen Agenten für die Abladung von der Autoren- an die Worker-Instanz. Der Autor hat eine Sling-ID von 1 und die Worker-Instanz hat eine Sling-ID von 2:
Für diese Konfiguration sind die folgenden drei Agenten erforderlich:
Dieses Replikationsschema gleicht dem für Autoren- und Veröffentlichungsinstanzen verwendeten. Bei der Abladung sind jedoch alle beteiligten Instanzen Autoreninstanzen.
Das Abladungs-Framework nutzt die Topologie zum Abrufen der IP-Adressen der Abladungsinstanzen. Basierend auf diesen IP-Adressen erstellt das Framework dann automatisch die Replikationsagenten. Wenn sich die IP-Adressen der Ablade-Instanzen später ändern, wird die Änderung nach dem Neustart der Instanz automatisch in der Topologie übernommen. Das Abladungs-Framework aktualisiert jedoch nicht automatisch die Replikationsagenten mit den neuen IP-Adressen. Um dies zu vermeiden, verwenden Sie feste IP-Adressen für alle Instanzen in der Topologie.
Verwenden Sie ein bestimmtes Format für die Eigenschaft Name der Replizierungsagenten, damit das Ablade-Framework automatisch den richtigen Agenten für bestimmte Workerinstanzen verwendet.
Benennung des ausgehenden Agenten auf der Autoreninstanz:
offloading_<slingid>
, wobei <slingid>
die Sling-ID der Worker-Instanz steht.
Beispiel: offloading_f5c8494a-4220-49b8-b079-360a72f71559
Benennung des Rückwärtsagenten auf der Autoreninstanz:
offloading_reverse_<slingid>
, wobei <slingid>
die Sling-ID der Worker-Instanz steht.
Beispiel: offloading_reverse_f5c8494a-4220-49b8-b079-360a72f71559
Benennung des Postausgangs auf der Worker-Instanz:
offloading_outbox
Erstellen Sie einen Replikationsagenten auf der Autoreninstanz. (Siehe die Dokumentation für Replizierungsagenten). Geben Sie einen beliebigen Titel an. Name muss der Benennungsregel entsprechen.
Erstellen Sie den Agenten mit den folgenden Eigenschaften:
Eigenschaft | Wert |
---|---|
Einstellungen > Serialisierungstyp | Default |
Transport > Transport-URI | https://<ip of target instance> :<port> /bin/receive?sling:authRequestLogin=1 |
Transport > Transportbenutzer | Replizierungsbenutzer auf Zielgruppe-Instanz |
Transport > Transportkennwort | Replizieren des Benutzerkennworts auf der Zielgruppe |
Erweitert > HTTP-Methode | POST |
Trigger > Standard ignorieren | True |
Erstellen Sie einen Agenten für Rückwärtsreplikation beim Autor. (Siehe die Dokumentation für Replizierungsagenten.) Geben Sie einen beliebigen Titel an. Name muss der Benennungsregel entsprechen.
Erstellen Sie den Agenten mit den folgenden Eigenschaften:
Eigenschaft | Wert |
---|---|
Einstellungen > Serialisierungstyp | Standard |
Transport > Transport-URI | https://<ip of target instance> :<port> /bin/receive?sling:authRequestLogin=1 |
Transport > Transportbenutzer | Replizierungsbenutzer auf Zielgruppe-Instanz |
Transport > Transportkennwort | Replizieren des Benutzerkennworts auf der Zielgruppe |
Erweitert > HTTP-Methode | GET |
Erstellen Sie einen Replizierungsagenten auf der Worker-Instanz. (Siehe die Dokumentation für Replizierungsagenten.) Geben Sie einen beliebigen Titel an. Name muss offloading_outbox
sein.
Erstellen Sie den Agenten mit den folgenden Eigenschaften.
Eigenschaft | Wert |
---|---|
Einstellungen > Serialisierungstyp | Standard |
Transport > Transport-URI | repo://var/replication/outbox |
Trigger > Standard ignorieren | true |
Sie können die Sling-ID einer Experience Manager-Instanz mit einer der beiden folgenden Methoden abrufen:
Neben den auf dieser Seite bereitgestellten, detaillierten Informationen können Sie auch folgende Abschnitte lesen: