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 ホスト

      で実行する場合 SolrCloud モード 外部の ZooKeeper で、この値を HOST:PORT ZooKeeper の my.server.com:2181
      ZooKeeper アンサンブルの場合は、コンマ区切りで入力します。 HOST:PORT 値: host1:2181,host2:2181
      Solr をスタンドアロンモードで実行する場合は、内部 ZooKeeper を使用して空白のままにします。
      デフォルト: <blank>

    • Solr URL​スタンドアロンモードで Solr と通信するために使用する URL。SolrCloud モードで実行している場合は、空白のままにします。

      デフォルト:https://127.0.0.1:8983/solr/

    • Solr コレクション Solr コレクションの名前。

      デフォルト:collection1

  • 選択 送信

メモ

mongoDB データベース(デフォルトの名前は communities)を、ノードストアまたはデータ(バイナリ)ストアで使用されているデータベースの名前に設定することはできません。関連トピック 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 設定

別々のコレクションを使用することで、1 つの Solr をノードストア(Oak)と共通ストア(MSRP)の間で共有できます。

Oak と MSRP のコレクションがどちらも高頻度で使用される場合は、パフォーマンス上の理由から 2 つ目の Solr をインストールすることもできます。

実稼動環境の場合、 SolrCloud モード では、スタンドアロンモード(単一のローカル Solr 設定)よりも高いパフォーマンスを提供します。

設定について詳しくは、SRP 用の Solr 設定を参照してください。

アップグレード

MSRP で設定された以前のバージョンからアップグレードする場合は、次の手順を実行する必要があります。

  1. を実行します。 AEM Communitiesへのアップグレード
  2. 新しい Solr 設定ファイルをインストールします
  3. MSRP のインデックス再作成の節を参照 MSRP インデックス再作成ツール

設定の公開

すべてのオーサーインスタンスとパブリッシュインスタンスで、MSRP が共通ストアとして指定されている必要があります。

パブリッシュ環境で同一の設定を使用できるようにするには:

  • 作成者:
    • メインメニューからに移動します。 [ ツール ] > [ 操作 ] > [ レプリケーション ]
    • 選択 ツリーをアクティベート
    • 開始パス:
      • 参照先 /etc/socialconfig/srpc/
    • 選択 有効化

ユーザーデータの管理

パブリッシュ環境で頻繁に入力されるユーザー、ユーザープロファイルおよびユーザーグループについては、以下を参照してください。​**

MSRP インデックス再作成ツール

新しい設定ファイルをインストールしたり、Solr のインデックスを修復したりするときは、MSRP 用の Solr のインデックス再作成用の HTTP エンドポイントを使用できます。

このツールでは、MongoDB が MSRP の情報源になるので、バックアップを取るときは MongoDB だけで十分です。**

UGC ツリー全体のインデックスを再作成することも、*path *data パラメーターで指定された特定のサブツリーのみを再作成することもできます。

このツールは、コマンドラインから cURL などの HTTP ツールを使用して実行できます。

インデックス再作成時には、メモリとパフォーマンスの間のトレードオフがあります。このトレードオフは、*batchSize *data パラメータで制御し、バッチごとに再インデックスされる UGC レコードの数を指定します。

適切なデフォルト値は 5000 です。

  • メモリが問題の場合は、より小さい数値を指定します
  • 速度が問題の場合は、速度を上げるために大きい数値を指定します

cURL コマンドを使用した MSRP インデックス再作成ツールの実行

以下に示す cURL コマンドは、MSRP に格納されている UGC のインデックス再作成の HTTP リクエストに必要なコマンドです。

基本的な形式は以下のとおりです。

cURL -u サインイン -d データ reindex-url

サインイン = administrator-id:password
例:admin:admin

データ = "batchSize=サイズ&path=path"

サイズ =操作ごとにインデックスを再作成する UGC エントリの数
/content/usergenerated/asi/mongo/

パス =再インデックスする 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 をデモ用に設定するには、MongoDB をデモ用に設定する方法を参照してください。

トラブルシューティング

UGC が MongoDB で表示されない

ストレージオプションの設定を確認し、MSRP がデフォルトのプロバイダーに設定されているかを確認してください。デフォルトでは、ストレージリソースプロバイダーは JSRP です。

すべてのオーサーインスタンスとパブリッシュAEMインスタンスで、 ストレージ設定コンソール AEMリポジトリを確認します。

  • JCR で、 /etc/socialconfig

    • 次を含まない srpc ノードの場合、ストレージプロバイダーが JSRP であることを意味します。
    • srpc ノードが存在し、ノードが含まれる場合 defaultconfigurationの場合、デフォルトの設定のプロパティでは、MSRP をデフォルトのプロバイダーとして定義する必要があります

アップグレード後に UGC が表示されない

既存のAEM Communities 6.0 サイトからアップグレードする場合は、既存の UGC を、 SRP AEM Communities 6.3 にアップグレードした後の API

この目的で、GitHub で利用できるオープンソースツールがあります。

移行ツールは、AEMソーシャルコミュニティの以前のバージョンから UGC を書き出し、AEM Communities 6.1 以降に読み込むようにカスタマイズできます。

エラー - undefined field 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(公開されている 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インスタンスを再起動します。

リソース

このページ