MSRP - Fournisseur de ressources de stockage MongoDB

A propos de MSRP

Lorsqu’AEM Communities est configuré pour utiliser MSRP comme magasin commun, le contenu généré par l’utilisateur est accessible à partir de toutes les instances d’auteur et de publication sans avoir besoin de synchronisation ni de réplication.

Voir aussi Caractéristiques des options SRP et Topologies recommandées.

Conditions requises

Configuration de MongoDB

Sélectionner MSRP

La console Configuration du stockage permet de sélectionner la configuration du stockage par défaut, qui identifie l’implémentation de la SRP à utiliser.

À l’auteur, pour accéder à la console Configuration de stockage :

  • À partir de la navigation globale : Outils > Communautés > Configuration de stockage

chlimage_1-28

  • Sélectionnez MongoDB Storage Resource Provider (MSRP)

  • Configuration de mongoDB

    • URI de mongoDB

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

    • Base de données mongoDB

      default : communities

    • Collection UGC mongoDB

      default : content

    • Collection de pièces jointes mongoDB

      default : attachments

  • SolrConfiguration

    • 🔗Hôte Zookeeper

      Lors de l’exécution en mode SolrCloud avec un ZooKeeper externe, définissez cette valeur sur la valeur HOST:PORT du ZooKeeper, telle que my.server.com:2181
      Pour un ensemble ZooKeeper, saisissez des valeurs HOST:PORT séparées par des virgules, telles que host1:2181,host2:2181.
      Laissez vide si Solr est exécuté en mode autonome à l’aide du ZooKeeper interne.
      Par défaut : <blank>

    • Solr
      URLTURL utilisée pour communiquer avec Solr en mode autonome.
      Laissez vide si vous exécutez en mode SolrCloud.

      Par défaut : https://127.0.0.1:8983/solr/

    • Solr
      CollectionNom de la collection Solr.

      Par défaut : collection1

  • Sélectionnez Envoyer

REMARQUE

La base de données mongoDB, dont le nom par défaut est communities, ne doit pas être définie sur le nom d’une base de données utilisée pour les magasins de noeuds ou les entrepôts de données (binaire). Voir aussi Éléments de stockage dans AEM 6.

Jeu de Secondaires MongoDB

Pour l’environnement de production, il est vivement recommandé de configurer un ensemble de réplications, un groupe de serveurs MongoDB qui implémente la réplication Principale-secondaire et le basculement automatisé.

Pour en savoir plus sur les jeux de réplications, consultez la documentation Réplication de MongoDB.

Pour utiliser des jeux de réplications et apprendre à définir des connexions entre les applications et les instances MongoDB, consultez la documentation Format URI de chaîne de connexion de MongoDB.

Exemple d’URL pour la connexion à un jeu de Secondaires

# 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

Configuration de Solr

Une installation Solr peut être partagée entre le magasin de noeuds (Oak) et le magasin commun (MSRP) à l’aide de différentes collections.

Si les collections Oak et MSRP sont utilisées de manière intensive, un second Solr peut être installé pour des raisons de performances.

Pour les environnements de production, le mode SolrCloud offre de meilleures performances par rapport au mode autonome (une seule configuration Solr locale).

Pour plus d’informations sur la configuration, voir Configuration Solr pour SRP.

Mise à niveau

Si vous effectuez une mise à niveau à partir d’une version antérieure configurée avec MSRP, il est nécessaire de

  1. Effectuez la mise à niveau vers AEM Communities
  2. Installation de nouveaux fichiers de configuration Solr
  3. Réindexation MSRP
    Voir la section Outil de réindexation MSRP

Publication de la configuration

MSRP doit être identifié comme le magasin commun sur toutes les instances d’auteur et de publication.

Pour rendre la configuration identique disponible dans l’environnement de publication :

  • Sur l’auteur :
    • Dans le menu principal, accédez à Outils > Opérations > Réplication.
    • Sélectionnez Activer l’arborescence
    • Chemin de début:
      • Accédez à /etc/socialconfig/srpc/
    • Sélectionnez Activer

Gestion des données utilisateur

Pour plus d’informations sur les utilisateurs, les profils utilisateur et les groupes d’utilisateurs, souvent renseignés dans l’environnement de publication, consultez la page

Outil de réindexation MSRP

Il existe un point d’entrée HTTP pour la réindexation Solr pour MSRP lors de l’installation de nouveaux fichiers de configuration ou de la réparation d’un index Solr endommagé.

Avec cet outil, MongoDB est la source de vérité pour MSRP ; Les sauvegardes ne doivent être effectuées que de MongoDB.

L’arborescence UGC entière peut être réindexée, ou seulement une sous-arborescence spécifique, comme spécifié par le paramètre *path *data .

Cet outil peut être exécuté à partir de la ligne de commande à l’aide de cURL ou de tout autre outil HTTP.

Lors de la réindexation, il existe un compromis entre la mémoire et les performances contrôlées par le paramètre de données batchSize , qui spécifie le nombre d’enregistrements UGC réindexés par lot.

Une valeur par défaut raisonnable est 5000 :

  • Si la mémoire pose problème, indiquez un nombre plus petit.
  • Si la vitesse est un problème, spécifiez un nombre plus grand pour augmenter la vitesse.

Exécution de l’outil de réindexation MSRP à l’aide de la commande cURL

La commande cURL suivante indique ce qui est nécessaire pour une requête HTTP de réindexation du contenu généré par l’utilisateur stocké dans MSRP.

Le format de base est le suivant :

cURL -u signature -d data reindex-url

signature = administrator-id:password
Par exemple : admin:admin

data = "batchSize=size&path=path"

size = nombre d’entrées UGC à réindexer par opération
/content/usergenerated/asi/mongo/

path = emplacement racine de l’arborescence du contenu créé par l’utilisateur pour la réindexation.

  • Pour réindexer tout le contenu généré par l’utilisateur, spécifiez la valeur de la propriété asipathde
    /etc/socialconfig/srpc/defaultconfiguration
  • Pour limiter l’index à un contenu généré par l’utilisateur, spécifiez une sous-arborescence de asipath

reindex-url = point de terminaison de la réindexation de la SRP
http://localhost:4503/services/social/datastore/mongo/reindex

REMARQUE

Si vous réindexez DSRP Solr, l’URL est /services/social/datastore/rdb/reindex

Exemple de réindexation MSRP

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

Démonstration de MSRP

Pour configurer MSRP pour un environnement de démonstration ou de développement, voir Comment configurer MongoDB pour la démonstration.

Résolution des problèmes

UGC invisible dans MongoDB

Vérifiez que MSRP a été configuré comme fournisseur par défaut en vérifiant la configuration de l'option de stockage. Par défaut, le fournisseur de ressources de stockage est JSRP.

Sur toutes les instances d’AEM de création et de publication, consultez à nouveau la console Configuration de stockage ou vérifiez le référentiel AEM :

  • Dans JCR, si /etc/socialconfig

    • Ne contient pas de noeud srpc, cela signifie que le fournisseur de stockage est JSRP.
    • Si le noeud srpc existe et contient le noeud defaultconfiguration, les propriétés de la configuration par défaut doivent définir MSRP comme fournisseur par défaut.

Le contenu généré par l’utilisateur disparaît après la mise à niveau

Si vous effectuez une mise à niveau à partir d’un site AEM Communities 6.0 existant, tout contenu généré par l’utilisateur préexistant doit être converti pour se conformer à la structure requise pour l’API SRP après la mise à niveau vers AEM Communities 6.3.

Un outil Open Source est disponible sur GitHub à cet effet :

L’outil de migration peut être personnalisé pour exporter le contenu créé par l’utilisateur à partir de versions antérieures d’AEM communautés sociales pour l’importer dans AEM Communities 6.1 ou une version ultérieure.

Error - champ non défini provider_id

Si l’erreur suivante s’affiche dans les journaux, elle indique que le fichier de schéma Solr n’est pas correctement configuré.

JsonMappingException : provider_id de champ non défini

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

Pour résoudre l’erreur, en suivant les instructions de Installation de MLS standard, assurez-vous que

  • Les fichiers de configuration XML ont été copiés à l’emplacement Solr correct.
  • Solr a été redémarré après que les nouveaux fichiers de configuration ont remplacé les fichiers existants.

Échec de la connexion sécurisée à MongoDB

Si une tentative d’établissement d’une connexion sécurisée au serveur MongoDB échoue en raison d’une définition de classe manquante, il est nécessaire de mettre à jour le lot de pilotes MongoDB, mongo-java-driver, disponible à partir du référentiel Maven public.

  1. Téléchargez le pilote à partir de https://search.maven.org/#artifactdetails%7Corg.mongodb%7Cmongo-java-driver%7C2.13.2%7Cjar (version 2.13.2 ou ultérieure)
  2. Copiez le lot dans le dossier "crx-quickstart/install" pour une instance AEM
  3. Redémarrez l’instance AEM

Ressources

Sur cette page