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 Host

      SolrCloud模式中使用外部ZooKeeper運行時,將此值設定為ZooKeeper的HOST:PORT,如​my.server.com:2181
      對於ZooKeeper整體,輸入逗號分隔的HOST:PORT值,例如​host1:2181,host2:2181
      如果使用內部ZooKeeper以獨立模式運行Solr,請保留空白。
      預設: <blank>

    • Solr
      URL用於以獨立模式與Solr通訊的URL。如果在SolrCloud模式中執行,請保留空白。

      預設:https://127.0.0.1:8983/solr/

    • Solr集
      合Solr集合名稱。

      預設:集合1

  • 選擇​提交

注意

預設為名稱communities的mongoDB資料庫不應設定為用於節點儲存或資料(二進位)儲存的資料庫的名稱。 另請參閱AEM 6中的儲存元素。

MongoDB複製副本集

對於生產環境,強烈建議設定一個複製副本集,即實現主次複製和自動故障切換的MongoDB伺服器群集。

要了解有關副本集的更多資訊,請訪問MongoDB的Replication文檔。

要使用副本集並了解如何定義應用程式和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 設定

Solr安裝可透過使用不同集合在節點存放區(Oak)和公用存放區(MSRP)之間共用。

如果Oak和MSRP集合都被集中使用,可能會基於效能原因安裝第二個Solr。

對於生產環境,SolrCloud mode提供了比獨立模式(單個本地Solr設定)更好的效能。

有關配置詳細資訊,請參閱SRP的Solr配置。

升級

如果從使用MSRP設定的舊版升級,則必須

  1. 執行升級至AEM Communities
  2. 安裝新的Solr配置檔案
  3. 重新索引MSRP
    請參閱MSRP重新索引工具

發佈設定

MSRP必須識別為所有製作和發佈執行個體上的通用商店。

若要讓相同的設定可在發佈環境中使用:

  • 在作者上:
    • 從主菜單導航到​工具>操作>複製
    • 選擇​激活樹
    • 開始路徑:
      • 瀏覽至/etc/socialconfig/srpc/
    • 選擇​激活

管理使用者資料

如需​usersuser profiles​和​user groups​的相關資訊,通常在發佈環境中輸入,請瀏覽

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,defaultconfiguration的屬性應將MSRP定義為預設提供者

升級後UGC消失

如果從現有的AEM Communities 6.0網站升級,在升級至AEM Communities 6.3後,必須轉換任何預先存在的UGC,以符合SRP API所需的結構。

GitHub上提供開放原始碼工具,目的如下:

移轉工具可自訂,以從舊版AEM社群匯出UGC,匯入至AEM Communities 6.1或更新版本。

錯誤 — 未定義欄位提供程式ID

如果日誌中出現以下錯誤,則表示Solr架構檔案配置不正確。

JsonMappingException:未定義欄位提供程式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,該包可從公共Maven儲存庫獲得。

  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執行個體

資源

本頁內容