MSRP - MongoDB Storage Resource Provider msrp-mongodb-storage-resource-provider
Über MSRP about-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 requirements
-
- Version 2.6 oder höher
- Keine Konfiguration von Mongos oder Freigabe erforderlich
- Die Verwendung eines Replikatsatzes wird dringend empfohlen
- Kann auf demselben Host wie AEM ausgeführt oder remote ausgeführt werden
-
-
Solr-Version 7.0
-
Solr erfordert Java 1.7 oder höher
-
Es ist kein Dienst erforderlich
-
Auswahl der Ausführungsmodi:
- Eigenständiger Modus
- SolrCloud-Modus (empfohlen für Produktionsumgebungen)
-
Auswahl der mehrsprachigen Suche (MLS):
-
MongoDB-Konfiguration mongodb-configuration
MSRP auswählen select-msrp
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:
- Wählen Sie in der globalen Navigation Tools > Communities > Speicherkonfiguration aus.
-
Wählen Sie MongoDB Storage Resource Provider (MSRP) aus
-
mongoDB-Konfiguration
-
mongoDB URI
default: mongodb://localhost/?maxPoolSize=10&waitQueueMultiple=5&readPreference=secondaryPreferred
-
mongoDB-Datenbank
default: communities
-
mongoDB UGC Collection
default: content
-
mongoDB Attachment Collection
default: attachments
-
-
SolrConfiguration
-
zookeeper host
Legen Sie bei Ausführung im SolrCloud-Modus mit einem externen ZooKeeper diesen Wert auf
HOST:PORT
für den ZooKeeper fest, z. B. my.server.com:2181Für ein ZooKeeper-Ensemble geben Sie durch Kommas getrennte
HOST:PORT
Werte ein, z. B. host1:2181,host2:2181Lassen Sie bei Ausführung von Solr im eigenständigen Modus mit dem internen ZooKeeper leer.
Default: <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.
Default: https://127.0.0.1:8983/solr/ -
Solr Collection
Der Solr-Sammlungsname.
Standard: collection1
-
-
-
Klicken Sie auf Übermitteln
communities
trägt, sollte nicht auf den Namen einer Datenbank gesetzt werden, die für Knotenspeicher oder (binäre) Datenspeicher verwendet wird. Siehe auch Speicherelemente in AEM 6.5.MongoDB-Replikat-Set mongodb-replica-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 in der Dokumentation zu MongoDB Replikation .
Informationen zum Arbeiten mit Replikatsätzen und zum Definieren von Verbindungen zwischen Anwendungen und MongoDB-Instanzen finden Sie in der Dokumentation zum Verbindungszeichenfolgen-URI-Format von MongoDB.
Beispiel-URL für die Verbindung zu einem Replikat-Set example-url-for-connecting-to-a-replica-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 solr-configuration
Eine Solr-Installation kann mithilfe verschiedener Sammlungen zwischen dem Knotenspeicher (Oak) und dem Common Store (MSRP) freigegeben werden.
Wenn sowohl die Oak- als auch die MSRP-Kollektionen intensiv verwendet werden, kann aus Leistungsgründen ein zweiter Solr installiert werden.
In Produktionsumgebungen bietet der SolrCloud-Modus eine verbesserte Leistung im Vergleich zum eigenständigen Modus (ein einzelnes lokales Solr-Setup).
Weitere Informationen zur Konfiguration finden Sie unter Solr-Konfiguration für SRP.
Upgrade upgrading
Wenn Sie von einer früheren Version aktualisieren, die mit MSRP konfiguriert wurde, müssen Sie:
-
Führen Sie die Aktualisierung auf AEM Communities durch.
-
Installieren neuer Solr-Konfigurationsdateien
- Für Standard-MLS
- Für erweiterte MLS
-
Reindex MSRP
Siehe Abschnitt MSRP-Neuindizierungs-Tool
Veröffentlichen der Konfiguration publishing-the-configuration
MSRP muss in allen Autoren- und Veröffentlichungsinstanzen als gemeinsamer Speicher identifiziert werden.
Um die identische Konfiguration in der Veröffentlichungsumgebung verfügbar zu machen, melden Sie sich bei Ihrer Autoreninstanz an und führen Sie die folgenden Schritte aus:
- Navigieren Sie vom Hauptmenü zu Tools > Vorgänge > Replikation.
- Wählen Sie Baum aktivieren
- Startpfad:
- Navigieren zu
/etc/socialconfig/srpc/
- Navigieren zu
- Wählen Sie Activate aus.
Verwalten von Benutzerdaten managing-user-data
Informationen zu Benutzern, Benutzerprofilen und Benutzergruppen, die häufig in die Veröffentlichungsumgebung eingegeben werden, finden Sie unter
MSRP-Neuindizierungs-Tool 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 Truth für MSRP; Sicherungen müssen nur von MongoDB durchgeführt 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 running-msrp-reindex-tool-using-curl-command
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 signin -d data reindex-url
signin = 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 Eigenschaft
asipath
von/etc/socialconfig/srpc/defaultconfiguration
- Um den Index auf einige UGC zu beschränken, geben Sie eine Unterstruktur von
asipath
an
reindex-url = der Endpunkt für die Neuindizierung von SRPhttp://localhost:4503/services/social/datastore/mongo/reindex
MSRP-Neuindizierungsbeispiel msrp-reindex-example
curl -s -u admin:admin -d 'batchSize=10000&path=/content/usergenerated/asi/mongo/' http://localhost:4503/services/social/datastore/mongo/reindex
Demo von MSRP how-to-demo-msrp
Informationen zum Einrichten von MSRP für eine Demonstrations- oder Entwicklungsumgebung finden Sie unter Einrichten von MongoDB für Demo.
Fehlerbehebung troubleshooting
UGC nicht in MongoDB sichtbar ugc-not-visible-in-mongodb
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 Speicherkonfigurationskonsole erneut auf oder überprüfen Sie das AEM Repository:
-
In JCR, wenn /etc/socialconfig
- Enthält keinen Knoten srpc , bedeutet dies, dass der Speicheranbieter JSRP ist.
- Wenn der Knoten srpc vorhanden ist und den Knoten defaultconfiguration enthält, sollten die Eigenschaften der Standardkonfiguration MSRP als Standardanbieter definieren.
UGC verschwindet nach der Aktualisierung ugc-disappears-after-upgrade
Beim Upgrade von einer vorhandenen AEM Communities 6.0-Site müssen alle bereits vorhandenen UGC so konvertiert werden, dass sie der für die SRP-API nach dem Upgrade auf AEM Communities 6.3 erforderlichen Struktur entsprechen.
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 error-undefined-field-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 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
Um den Fehler zu beheben, stellen Sie beim Befolgen der Anweisungen für Installieren von Standard MLS Folgendes sicher:
- Die XML-Konfigurationsdateien wurden an den richtigen Solr-Speicherort kopiert.
- Solr wurde neu gestartet, nachdem die neuen Konfigurationsdateien die vorhandenen ersetzt haben.
Sichere Verbindung zu MongoDB schlägt fehl secure-connection-to-mongodb-fails
Wenn ein Versuch, eine gesicherte Verbindung zum MongoDB-Server herzustellen, aufgrund einer fehlenden Klassendefinition fehlschlägt, ist es notwendig, das MongoDB-Treiberpaket, mongo-java-driver
, das über das öffentliche Maven-Repository verfügbar ist, zu aktualisieren.
- Laden Sie den Treiber von https://search.maven.org/#artifactdetails%7Corg.mongodb%7Cmongo-java-driver%7C2.13.2%7Cjar (Version 2.13.2 oder höher) herunter.
- Kopieren Sie das Bundle in den Ordner "crx-quickstart/install"für eine AEM Instanz.
- Starten Sie die AEM-Instanz neu.