MSRP - MongoDB Storage Resource Provider

Über MSRP

Wenn AEM Communities so konfiguriert ist, dass MSRP als gemeinsamer Speicher verwendet wird, kann von allen Autoren- und Veröffentlichungsinstanzen auf benutzergenerierte Inhalte (UGC) zugegriffen werden, ohne dass eine Synchronisierung oder Replikation erforderlich ist.

Siehe auch Eigenschaften der SRP-Optionen und Empfohlene Topologien.

Voraussetzungen

  • MongoDB:

    • Version 2.6 oder höher
    • Keine Konfiguration von Mongos oder Freigabe erforderlich
    • empfiehlt dringend die Verwendung eines Replikationssatz
    • Kann auf demselben Host wie AEM ausgeführt oder remote ausgeführt werden
  • Apache Solr:

MongoDB-Konfiguration

MSRP auswählen

Die Speicherkonfigurationskonsole ermöglicht die Auswahl der standardmäßigen Speicherkonfiguration, die angibt, welche SRP-Implementierung verwendet werden soll.

Auf der Autoreninstanz, um auf die Konsole Speicherkonfiguration zuzugreifen:

  • Über die globale Navigation: Tools > Communities > Speicherkonfiguration

chlimage_1-28

  • Auswählen MongoDB Storage Resource Provider (MSRP)

  • mongoDB-Konfiguration

    • mongoDB-URI

      default: mongodb://localhost/?maxPoolSize=10&waitQueueMultiple=5&readPreference=secondaryPreferred

    • mongoDB-Datenbank

      default: communities

    • mongoDB-UGC-Sammlung

      default: content

    • mongoDB-Anlagensammlung

      default: Anlagen

  • SolrConfiguration

    • 🔗Zookeeper-Host

      Bei Ausführung in SolrCloud-Modus mit einem externen ZooKeeper festlegen, setzen Sie diesen Wert auf HOST:PORT für den ZooKeeper, z. B. my.server.com:2181
      Für ein ZooKeeper-Ensemble müssen Sie durch Kommas getrennt sein. HOST:PORT -Werte, z. B. Host1:2181,Host2:2181
      Lassen Sie bei Ausführung von Solr im eigenständigen Modus mit dem internen ZooKeeper leer.
      Standard: <blank>

    • Solr-URL
      Die URL, die zur Kommunikation mit Solr im eigenständigen Modus verwendet wird.
      Lassen Sie bei Ausführung im SolrCloud-Modus leer.

      Standard: https://127.0.0.1:8983/solr/

    • Solr-Sammlung
      Der Solr-Sammlungsname.

      Standard: collection1

  • Klicken Sie auf Übermitteln

HINWEIS

Die mongoDB-Datenbank, die standardmäßig auf den Namen communitiesdarf nicht auf den Namen einer Datenbank gesetzt werden, für die Knotenspeicher oder (binäre) Datenspeicher. Siehe auch Speicherelemente in AEM 6.

MongoDB-Replikat-Set

Für die Produktionsumgebung wird dringend empfohlen, einen Replikatsatz einzurichten, einen Cluster von MongoDB-Servern, der die primäre sekundäre Replikation und automatisiertes Failover implementiert.

Weitere Informationen zu Replikationssets finden Sie unter MongoDB Replikation Dokumentation.

Um mit Replikatsätzen zu arbeiten und zu erfahren, wie Sie Verbindungen zwischen Anwendungen und MongoDB-Instanzen definieren, besuchen Sie MongoDB's Verbindungszeichenfolge-URI-Format Dokumentation.

Beispiel-URL für die Verbindung zu einem Replikat-Set

# Example url for:
#     servers "mongoserver1", "mongoserver2", "mongoserver3"
#     replica set 'rs0'
# port numbers only necessary if not default port 27017
mongodb://mongoserver1:<mongoport1>,mongoserver2:<mongoport2>,mongoserver3:<mongoport3>/?replicaSet=rs0&maxPoolSize=100&waitQueueMultiple=50&readPreference=secondaryPreferred

Solr-Konfiguration

Eine Solr-Installation kann mithilfe verschiedener Sammlungen zwischen dem Knotenspeicher (Oak) und dem allgemeinen Speicher (MSRP) freigegeben werden.

Wenn sowohl die Oak- als auch die MSRP-Kollektionen intensiv verwendet werden, kann aus Leistungsgründen ein zweiter Solr installiert werden.

Für Produktionsumgebungen: SolrCloud-Modus bietet eine verbesserte Leistung gegenüber dem eigenständigen Modus (ein einzelnes lokales Solr-Setup).

Weitere Informationen zur Konfiguration finden Sie unter Solr-Konfiguration für SRP.

Aktualisieren

Wenn Sie von einer früheren Version aktualisieren, die mit MSRP konfiguriert wurde, müssen Sie

  1. Führen Sie die Upgrade auf AEM Communities
  2. Installieren neuer Solr-Konfigurationsdateien
  3. Neuindizieren von MSRP Siehe Abschnitt MSRP-Reindex-Tool

Veröffentlichen der Konfiguration

MSRP muss in allen Autoren- und Veröffentlichungsinstanzen als gemeinsamer Speicher identifiziert werden.

So stellen Sie die identische Konfiguration in der Veröffentlichungsumgebung zur Verfügung:

  • Bei Autor:
    • Navigieren Sie vom Hauptmenü zu Tools > Vorgänge > Replikation
    • Auswählen Baum aktivieren
    • Startpfad:
      • Navigieren Sie zu /etc/socialconfig/srpc/
    • Auswählen Aktivieren

Verwalten von Benutzerdaten

Informationen über Benutzer, Benutzerprofile und Benutzergruppen, häufig in die Veröffentlichungsumgebung eingegeben, Besuch

MSRP-Reindex-Tool

Es gibt einen HTTP-Endpunkt für die Neuindizierung von Solr für MSRP bei der Installation neuer Konfigurationsdateien oder der Reparatur eines beschädigten Solr-Index.

Mit diesem Tool ist MongoDB die Quelle von Wahrheit für MSRP; Sicherungen müssen nur von MongoDB vorgenommen werden.

Die gesamte UGC-Struktur kann neu indiziert werden oder nur eine bestimmte Unterstruktur, wie durch den Parameter *path *data angegeben.

Dieses Tool kann über die Befehlszeile mit cURL oder einem anderen HTTP-Tool ausgeführt werden.

Bei der Neuindizierung gibt es einen Kompromiss zwischen Speicher und Leistung, der durch den *batchSize *data -Parameter gesteuert wird, der angibt, wie viele UGC-Datensätze pro Batch neu indiziert werden.

Der angemessene Standardwert ist 5000:

  • Wenn der Speicher ein Problem darstellt, geben Sie eine kleinere Zahl an
  • Wenn die Geschwindigkeit ein Problem darstellt, geben Sie eine größere Zahl an, um die Geschwindigkeit zu erhöhen

Ausführen des MSRP-Reindex-Tools mithilfe des cURL-Befehls

Der folgende cURL-Befehl zeigt, was erforderlich ist, damit eine HTTP-Anforderung UGC neu indiziert, die in MSRP gespeichert ist.

Das Standardformat lautet:

cURL -u Anmeldung -d data reindex-url

Anmeldung = administrator-id:password
Beispiel: admin:admin

data = "batchSize=size&path=path"

size = wie viele UGC-Einträge pro Vorgang neu indiziert werden sollen
/content/usergenerated/asi/mongo/

path = der Stammspeicherort des Baums der zu neu indizierten UGC

  • Um alle benutzergenerierten Inhalte neu zu indizieren, geben Sie den Wert der asipathEigenschaft von
    /etc/socialconfig/srpc/defaultconfiguration
  • Um den Index auf einige UGC zu beschränken, geben Sie eine Unterstruktur von asipath

reindex-url = Endpunkt für die Neuindizierung von SRP
http://localhost:4503/services/social/datastore/mongo/reindex

HINWEIS

Wenn Sie Neuindizierung von DSRP Solr, lautet die URL . /services/social/datastore/rdb/reindex

MSRP-Neuindizierungsbeispiel

curl -s -u admin:admin -d 'batchSize=10000&path=/content/usergenerated/asi/mongo/' http://localhost:4503/services/social/datastore/mongo/reindex

Demo von MSRP

Informationen zum Einrichten von MSRP für eine Demonstrations- oder Entwicklungsumgebung finden Sie unter Einrichten von MongoDB für Demo.

Fehlerbehebung

UGC nicht in MongoDB sichtbar

Stellen Sie sicher, dass MSRP als Standardanbieter konfiguriert wurde, indem Sie die Konfiguration der Speicheroption aktivieren. Standardmäßig ist der Speicher-Ressourcenanbieter JSRP.

Rufen Sie auf allen Autoren- und Veröffentlichungsinstanzen AEM erneut die Speicherkonfigurationskonsole oder überprüfen Sie das AEM Repository:

  • Wenn in JCR /etc/socialconfig

    • Enthält keine srpc Knoten bedeutet, dass der Speicheranbieter JSRP ist.
    • Wenn der Knoten srpc vorhanden ist und den Knoten enthält defaultconfiguration, sollten die Eigenschaften der Standardkonfiguration MSRP als Standardanbieter definieren

UGC verschwindet nach der Aktualisierung

Bei der Aktualisierung von einer vorhandenen AEM Communities 6.0-Site müssen alle bereits vorhandenen benutzergenerierten Inhalte so konvertiert werden, dass sie der für die SRP API nach der Aktualisierung auf AEM Communities 6.3.

Zu diesem Zweck steht auf GitHub ein Open-Source-Tool zur Verfügung:

Das Migrationswerkzeug kann angepasst werden, um benutzergenerierte Inhalte aus früheren Versionen AEM Social Communities für den Import in AEM Communities 6.1 oder höher zu exportieren.

Fehler - nicht definiertes Feld provider_id

Wenn der folgende Fehler in den Protokollen angezeigt wird, weist er darauf hin, dass die Solr-Schemadatei nicht ordnungsgemäß konfiguriert ist.

JsonMappingException: undefined field provider_id

Caused by: com.fasterxml.jackson.databind.JsonMappingException: undefined field provider_id
at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:129)
at com.fasterxml.jackson.databind.ObjectMapper.writeValue(ObjectMapper.java:1819)
at com.adobe.cq.social.scf.core.BaseSocialComponent.toJSONString(BaseSocialComponent.java:196)
... 124 common frames omitted

So beheben Sie den Fehler, wenn Sie die Anweisungen für Installieren von Standard-MLSsicherstellen,

  • Die XML-Konfigurationsdateien wurden in den richtigen Solr-Speicherort kopiert.
  • Solr wurde neu gestartet, nachdem die neuen Konfigurationsdateien die vorhandenen ersetzt haben

Sichere Verbindung zu MongoDB schlägt fehl

Wenn ein Versuch, eine gesicherte Verbindung zum MongoDB-Server herzustellen, aufgrund einer fehlenden Klassendefinition fehlschlägt, ist es erforderlich, das MongoDB-Treiberpaket zu aktualisieren. mongo-java-driver, verfügbar über das öffentliche Maven-Repository.

  1. Laden Sie den Treiber von herunter. https://search.maven.org/#artifactdetails%7Corg.mongodb%7Cmongo-java-driver%7C2.13.2%7Cjar (Version 2.13.2 oder höher)
  2. Kopieren Sie das Bundle in den Ordner "crx-quickstart/install"für eine AEM Instanz.
  3. Starten Sie die AEM-Instanz neu

Ressourcen

Auf dieser Seite