MSRP - MongoDB存储资源提供程序

关于MSRP

将AEM Communities配置为使用MSRP作为其公共存储时,用户生成的内容(UGC)可以从所有作者和发布实例访问,而无需同步或复制。

另请参阅SRP选项的特性推荐拓扑

要求

MongoDB配置

选择MSRP

存储配置控制台允许选择默认存储配置,该配置标识要使用的SRP实现。

在创作时,要访问存储配置控制台:

  • 从全局导航:工具>社区>存储配置

chlimage_1-28

  • 选择​MongoDB存储资源提供程序(MSRP)

  • mongoDB 配置

    • mongoDB URI

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

    • mongoDB 数据库

      默认:社区

    • mongoDB UGC 收藏集

      默认:内容

    • mongoDB 附件收藏集

      默认:附件

  • SolrConfiguration

    • 🔗Zookeeper 主机

      在具有外部ZooKeeper的SolrCloud模式中运行时,将此值设置为ZooKeeper的HOST:PORT,如​my.server.com:2181
      对于ZooKeeper Ensemble,输入逗号分隔的HOST:PORT值,如​host1:2181, host2:2181
      如果使用内部ZooKeeper在独立模式下运行Solr,则保留为空。
      默认: <blank>

    • Solr
      URL用于与Solr在独立模式下通信的URL。如果在SolrCloud模式下运行,则留空。

      默认:https://127.0.0.1:8983/solr/

    • Solr
      CollectionSolr集合名称。

      默认:collection1

  • 选择​提交

注意

不应将默认为名称communities的mongoDB数据库设置为用于节点存储或数据(二进制)存储的数据库的名称。 另请参阅AEM 6🔗中的存储元素。

MongoDB副本集

对于生产环境,强烈建议设置一个复制副本集,即MongoDB服务器群集,该群集实现主辅助复制和自动故障转移。

要了解有关副本集的更多信息,请访问MongoDB的复制文档。

要使用副本集并了解如何定义应用程序与MongoDB实例之间的连接,请访问MongoDB的连接字符串URI格式文档。

连接到副本集的示例Url

# 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 配置

通过使用不同集合可以在节点存储(Oak)和公共存储(MSRP)之间共享Solr安装。

如果Oak和MSRP集合都得到集中使用,则出于性能原因,可能会安装第二个Solr。

对于生产环境,SolrCloud模式比独立模式(单个本地Solr设置)提供了更高的性能。

有关配置详细信息,请参阅 SRP的Solr配置。

升级

如果从配置了MSRP的早期版本升级,则需要

  1. 执行升级到AEM Communities
  2. 安装新的Solr配置文件
  3. 重新索引MSRP
    请参阅MSRP重新索引工具

发布配置

必须将MSRP标识为所有创作和发布实例上的公用存储。

要在发布环境中提供相同的配置,请执行以下操作:

  • 作者:
    • 从主菜单导航到​工具>操作>复制
    • 选择​激活树
    • 开始路径:
      • 浏览到/etc/socialconfig/srpc/
    • 选择​激活

管理用户数据

有关​用户用户用户档案​和​用户组​的信息,请访问

MSRP重新索引工具

在安装新配置文件或修复损坏的Solr索引时,有一个HTTP端点用于为MSRP的Solr重新建立索引。

使用此工具,MongoDB是MSRP truth​的源;只需对MongoDB进行备份。

可以重新索引整个UGC树,或仅重新索引由*path *data参数指定的特定子树。

此工具可以使用cURL或任何其他HTTP工具从命令行运行。

重新索引时,内存和性能之间由*batchSize *data参数控制,该参数指定每批重新索引多少个UGC记录。

合理的默认值为5000:

  • 如果内存是问题,请指定一个较小的数字
  • 如果速度是问题,请指定更大的数字以增加速度

使用cURL命令运行MSRP重新索引工具

以下cURL命令显示HTTP请求重新索引存储在MSRP中的UGC所需的内容。

基本格式为:

cURL -u signin -d data reindex-url

signin = administrator-id:password
例如:admin:admin

data = "batchSize=size&path=path"

size =每个操作要重新索引的UGC条目数
/content/usergenerated/asi/mongo/

path = UGC树的根位置以重新索引

  • 要重新索引所有UGC,请指定asipath
    /etc/socialconfig/srpc/defaultconfiguration
  • 要将索引限制为某些UGC,请指定asipath的子树

reindex-url = SRP重新索引的端点
http://localhost:4503/services/social/datastore/mongo/reindex

注意

如果您正在重新索引DSRP Solr,则URL为​**/services/social/datastore/rdb/reindex**

MSRP重新索引示例

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

如何演示MSRP

要为演示或开发环境设置MSRP,请参阅HowTo Setup MongoDB for Demo

疑难解答

UGC在MongoDB中不可见

通过检查存储选项的配置,确保MSRP已配置为默认提供程序。 默认情况下,存储资源提供程序为JSRP。

在所有作者和发布AEM实例上,重新访问存储配置控制台或检查AEM存储库:

  • 在JCR中,如果/etc/socialconfig

    • 不包含srpc节点,它表示存储提供程序是JSRP
    • 如果srpc节点存在并包含节点defaultconfiguration,则默认配置的属性应将MSRP定义为默认提供程序

升级后UGC消失

如果从现有AEM Communities 6.0站点升级,则任何预先存在的UGC必须在升级到AEM Communities 6.3后转换为符合 SRP API所需的结构。

GitHub上提供了一个开放源代码工具,用于此目的:

可以自定义迁移工具,以将UGC从先前版本的AEM社交社区中导出,以导入AEM Communities 6.1或更高版本。

错误 — 未定义字段provider_id

如果日志中出现以下错误,则表示Solr模式文件配置不正确。

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

要解决此错误,请按照安装标准MLS的说明操作,确保

  • XML配置文件被复制到正确的Solr位置
  • 新配置文件替换现有配置文件后,Solr重新启动

到MongoDB的安全连接失败

如果由于缺少类定义而尝试与MongoDB服务器建立安全连接失败,则必须更新公共主存储库中提供的MongoDB驱动程序包mongo-java-driver

  1. https://search.maven.org/#artifactdetails%7Corg.mongodb%7Cmongo-java-driver%7C2.13.2%7Cjar(版本2.13.2或更高版本)下载驱动程序
  2. 将捆绑包复制到AEM实例的“crx-quickstart/install”文件夹中
  3. 重新启动AEM实例

资源

On this page

Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now