Show Menu
화제×

MSRP - MongoDB 저장소 리소스 공급자

MSRP 정보

AEM Communities가 MSRP를 공용 스토어로 사용하도록 구성된 경우 동기화 또는 복제 없이도 모든 작성자 및 게시 인스턴스에서 사용자 생성 콘텐츠(UGC)에 액세스할 수 있습니다.

요구 사항

MongoDB Configuration

MSRP 선택

스토리지 구성 콘솔을 사용하면 사용할 SRP 구현을 식별하는 기본 스토리지 구성을 선택할 수 있습니다.
작성자는 스토리지 구성 콘솔을 액세스합니다.
  • 전역 탐색에서:도구 > 커뮤니티 > 스토리지 구성
  • Select MongoDB Storage Resource Provider (MSRP)
  • mongoDB 구성
    • mongoDB URI
      기본값 :mongodb://localhost/?maxPoolSize=10&waitQueueMultiple=5&readPreference=secondaryPreferred
    • mongoDB 데이터베이스
      기본값 :커뮤니티
    • mongoDB UGC 컬렉션
      기본값 :content
    • mongoDB 첨부 파일 컬렉션
      기본값 :첨부 파일
  • SolrConfiguration
    • 외부 ZooKeeper 와 함께 SolrCloud 모드에서 실행할 때 HOST:PORT my.server.com:2181 와 같은 이 값을 ZooKeeper의 경우 host1:2181,host2:2188과 같이 쉼표로 구분된 HOST:PORT **​값을 입력합니다. 11. ZooKeeper를 사용하여 독립 실행형 모드에서 R을 실행하는 경우 비워 둡니다. 기본값 : <공백>
    • 솔루션 URL ​독립 실행형 모드에서 Solr와 통신하는 데 사용되는 URL입니다. SolrCloud 모드에서 실행되는 경우 비워 둡니다. 기본값 :https://127.0.0.1:8983/solr/
    • Solr Collection Solr 컬렉션 이름입니다. 기본값 :collection1
  • 제출 ​을 선택합니다
기본적으로 이름인 mongoDB 데이터베이스는 communities 노드 저장소나 데이터(이진) 저장소에 AEM 6에서 노드 저장소 및 데이터 저장소 구성 사용되는 데이터베이스의 이름으로 설정하면 안 됩니다. 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) 간에 솔루션 설치를 공유할 수 있습니다.
Oak 컬렉션과 MSRP 컬렉션이 모두 집중적으로 사용되는 경우 성능상의 이유로 두 번째 Solr를 설치할 수 있습니다.
프로덕션 환경의 경우 SolrCloud 모드는 독립 실행형 모드(단일 로컬 솔루션 설정)보다 향상된 성능을 제공합니다.

업그레이드

MSRP로 구성된 이전 버전에서 업그레이드하는 경우
  1. AEM Communities로 업그레이드 수행
  2. 새 Solr 구성 파일 설치

구성 게시

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 signin -d data reindex-url
signin = administrator-id:password 예:관리:관리
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 솔루션을 다시 인덱싱하는 경우 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를 참조하십시오 .

문제 해결

MongoDB에 UGC가 표시되지 않음

스토리지 옵션의 구성을 확인하여 MSRP가 기본 공급자로 구성되었는지 확인합니다. 기본적으로 저장소 리소스 공급자는 JSRP입니다.
모든 작성 및 게시 AEM 인스턴스에서 스토리지 구성 콘솔을 다시 방문하거나 AEM 저장소를 확인합니다.
  • JCR에서, if/etc/socialconfig
    • srpc 노드를 포함하지 않음, 즉 스토리지 공급자가 JSRP임을 의미합니다.
    • srpc 노드가 존재하고 노드 기본 구성을 포함하는 경우 기본 구성의 속성은 MSRP를 기본 공급자로 정의해야 합니다

업그레이드 후 UGC가 사라짐

기존 AEM Communities 6.0 사이트에서 업그레이드하는 경우, AEM Communities 6.3으로 업그레이드한 후 기존 UGC를 SRP API에 필요한 구조에 맞게 변환해야 합니다.
이러한 목적으로 GitHub에서 사용할 수 있는 오픈 소스 도구가 있습니다.
AEM Communities 6.1 이상 버전으로 가져오기 위해 이전 버전의 AEM 소셜 커뮤니티에서 UGC를 내보내도록 마이그레이션 도구를 사용자 지정할 수 있습니다.

오류 - 정의되지 않은 필드 provider_id

로그에 다음 오류가 표시되면 Solr 스키마 파일이 제대로 구성되지 않았음을 나타냅니다.

JsonMappingException:정의되지 않은 필드 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 구성 파일이 올바른 솔루션 위치에 복사되었습니다.
  • 새 구성 파일이 기존 구성 파일을 교체한 후 솔러를 다시 시작했습니다.

MongoDB에 대한 보안 연결 실패

클래스 정의가 누락되어 MongoDB 서버에 대한 보안 연결을 시도했으나 MongoDB 서버에 대한 연결이 실패하는 경우 공용 MAVEN 저장소에서 사용할 수 mongo-java-driver 있는 MongoDB 드라이버 번들을 업데이트해야 합니다.
  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 인스턴스 다시 시작