MSRP - MongoDB存储资源提供程序

关于MSRP

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

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

要求

MongoDB配置

选择MSRP

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

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

  • 在全局导航中,选择​工具 > 社区 > 存储配置

msrp

  • 选择​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.5🔗中的存储元素。

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