MSRP - MongoDB ストレージリソースプロバイダー msrp-mongodb-storage-resource-provider
MSRPについて about-msrp
AEM CommunitiesがMSRPを共通ストアとして使用するように設定されている場合、同期やレプリケーションを必要とせずに、ユーザー生成コンテンツ(UGC)はすべてのオーサーインスタンスとパブリッシュインスタンスからアクセスできます。
SRP オプションの特性および推奨トポロジ も参照してください。
要件 requirements
-
- バージョン 2.6以降
- Mongosやshardingを設定する必要はありません
- レプリカセット の使用を強くお勧めします
- AEMと同じホストで実行するか、リモートで実行する可能性があります
-
-
Solr バージョン 7.0
-
SolrにはJava 1.7以降が必要です
-
サービスは必要ありません
-
実行モードの選択:
- スタンドアロンモード
- SolrCloud モード (実稼動環境に推奨)
-
多言語検索(MLS)の選択:
-
MongoDB設定 mongodb-configuration
MSRPを選択 select-msrp
ストレージ設定コンソール では、使用するSRPの実装を特定するデフォルトのストレージ設定を選択できます。
オーサーで、ストレージ設定コンソールにアクセスするには、次の手順を実行します。
- グローバルナビゲーションから、ツール/コミュニティ/ストレージ設定を選択します。
-
MongoDB ストレージリソースプロバイダー(MSRP)を選択
-
mongoDB設定
-
mongoDB URI
default: mongodb://localhost/?maxPoolSize=10&waitQueueMultiple=5&readPreference=secondaryPreferred
-
mongoDB データベース
default: communities
-
mongoDB UGC コレクション
default: content
-
mongoDB Attachment Collection
default:添付ファイル
-
-
SolrConfiguration
-
Zookeeper ホスト
外部ZooKeeperを使用してSolrCloud モード で実行する場合は、この値を my.server.com:2181 など、ZooKeeperの
HOST:PORTに設定しますZooKeeper Ensembleの場合、host1:2181,host2:2181のように、
HOST:PORTのコンマ区切りの値を入力します内部ZooKeeperを使用してスタンドアロンモードでSolrを実行する場合は、空白のままにします。
Default: <blank>-
Solr URL
スタンドアロンモードでSolrと通信するために使用されるURL。
SolrCloud モードで実行している場合は、空白のままにします。
Default: https://127.0.0.1:8983/solr/ -
Solr コレクション
Solr コレクション名。
Default: collection1
-
-
-
「送信」を選択します。
communitiesであるmongoDB データベースは、 ノードストアまたはデータ(バイナリ)ストア に使用されるデータベースの名前に設定しないでください。 AEM 6.5🔗のStorage Elementsも参照してください。MongoDB レプリカセット mongodb-replica-set
実稼動環境では、プライマリセカンダリレプリケーションと自動フェイルオーバーを実装するMongoDB サーバーのクラスターであるレプリカセットをセットアップすることを強くお勧めします。
レプリカセットについて詳しくは、MongoDBの レプリケーション のドキュメントを参照してください。
レプリカセットを操作し、アプリケーションとMongoDB インスタンス間の接続を定義する方法については、MongoDBの接続文字列URI形式 ドキュメントを参照してください。
レプリカセットに接続するためのURLの例 example-url-for-connecting-to-a-replica-set
# 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-configuration
Solr インストールは、異なるコレクションを使用して、ノードストア(Oak)と共通ストア(MSRP)の間で共有される場合があります。
Oak コレクションとMSRP コレクションの両方を集中的に使用する場合は、パフォーマンス上の理由から2番目のSolrをインストールできます。
実稼動環境の場合、SolrCloud モード では、スタンドアロンモード(単一のローカル Solr セットアップ)よりもパフォーマンスが向上します。
構成の詳細については、Solr Configuration for SRPを参照してください。
アップグレード upgrading
MSRPで設定された以前のバージョンからアップグレードする場合は、次のことが必要になります。
-
AEM Communities🔗への アップグレードを実行します
-
新しいSolr設定ファイルのインストール
- 標準MLSの場合
- Advanced MLSの場合
-
MSRPのインデックス再作成
セクション MSRP インデックス再作成ツール を参照してください
設定の公開 publishing-the-configuration
MSRPは、すべてのオーサーインスタンスとパブリッシュインスタンスの共通ストアとして識別する必要があります。
パブリッシュ環境で同じ設定を使用できるようにするには、オーサーインスタンスにログインし、次の手順に従います。
- メインメニューからツール/操作/レプリケーションに移動します。
- 「ツリーをアクティブ化」を選択
- パスの開始:
/etc/socialconfig/srpc/を参照
- アクティブ化を選択
ユーザーデータの管理 managing-user-data
ユーザー、ユーザープロファイルおよび ユーザーグループ について、パブリッシュ環境で頻繁に入力される情報については、次を参照してください
MSRP インデックス再作成ツール msrp-reindex-tool
新しい設定ファイルをインストールしたり、破損したSolr インデックスを修復したりする場合に、MSRP用にSolrを再インデックス化するためのHTTP エンドポイントがあります。
このツールを使用すると、MongoDBはMSRPの truth のソースとなります。バックアップはMongoDBでのみ実行できます。
UGC ツリー全体をインデックス付けするか、*path *data パラメーターで指定された特定のサブツリーのみをインデックス付けできます。
このツールは、cURLまたはその他のHTTP ツールを使用してコマンドラインから実行できます。
インデックス再作成を行う場合、*batchSize *data パラメーターによって制御されるメモリとパフォーマンスの間にはトレードオフがあります。このパラメーターは、バッチごとにインデックス再作成されるUGC レコードの数を指定します。
合理的なデフォルトは5000です。
- メモリに問題がある場合は、より小さい数値を指定します
- 速度に問題がある場合は、より大きな数値を指定して速度を上げます
cURL コマンドを使用したMSRP インデックス再作成ツールの実行 running-msrp-reindex-tool-using-curl-command
次のcURL コマンドは、HTTP リクエストがMSRPに格納されたUGCを再インデックス化するために必要なことを示しています。
基本的な形式は次のとおりです。
cURL -u signin -d data reindex-url
signin =管理者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
MSRPの再インデックスの例 msrp-reindex-example
curl -s -u admin:admin -d 'batchSize=10000&path=/content/usergenerated/asi/mongo/' http://localhost:4503/services/social/datastore/mongo/reindex
MSRPのデモ方法 how-to-demo-msrp
デモ環境または開発環境のMSRPをセットアップするには、 デモ用MongoDBのセットアップ方法を参照してください。
トラブルシューティング troubleshooting
MongoDBでUGCが表示されない ugc-not-visible-in-mongodb
ストレージオプションの設定を確認して、MSRPがデフォルトプロバイダーに設定されていることを確認します。 デフォルトでは、ストレージリソースプロバイダーはJSRPです。
すべてのオーサーインスタンスとパブリッシュAEM インスタンスで、Storage Configuration Consoleを再訪問するか、AEM リポジトリを確認します。
-
JCRで、/etc/socialconfigの場合
- srpc ノードが含まれていません。これは、ストレージプロバイダーがJSRPであることを意味します。
- srpc ノードが存在し、ノード defaultconfigurationが含まれている場合、defaultconfigurationのプロパティでMSRPをデフォルトプロバイダーとして定義する必要があります。
アップグレード後にUGCが消える ugc-disappears-after-upgrade
既存のAEM Communities 6.0 サイトからアップグレードする場合、既存のUGCは、AEM Communities 6.3にアップグレードした後、SRP APIに必要な構造に準拠するように変換する必要があります。
GitHubには、次のような目的で利用できるオープンソースツールがあります。
移行ツールは、以前のバージョンのAEM ソーシャルコミュニティからUGCを書き出し、AEM Communities 6.1以降に読み込むようにカスタマイズできます。
エラー – フィールド provider_idが定義されていません error-undefined-field-provider-id
ログに次のエラーが表示された場合は、Solr スキーマファイルが正しく設定されていないことを示します。
JsonMappingException:未定義のフィールド provider_id 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へのセキュアな接続が失敗する secure-connection-to-mongodb-fails
クラス定義が見つからなかったためにMongoDB サーバーへのセキュアな接続が失敗した場合は、公開されているMaven リポジトリから利用可能なMongoDB ドライバーバンドル mongo-java-driverを更新する必要があります。
- ドライバーをhttps://search.maven.org/#artifactdetails|org.mongodb|mongo-java-driver|2.13.2|jar (バージョン 2.13.2以降)からダウンロードします。
- AEM インスタンスの「crx-quickstart/install」フォルダーにバンドルをコピーします。
- AEM インスタンスを再起動します。