복제 replication
Adobe Experience Manager as a Cloud Service은 Sling 콘텐츠 배포 기능을 사용하여 콘텐츠를 이동하여 AEM 런타임 외부에 있는 Adobe Developer에서 실행되는 파이프라인 서비스를 복제합니다.
콘텐츠 게시 방법 methods-of-publishing-content
벌크 게시 사용자 지정 코드를 빌드하는 것은 권장되지 않습니다.
어떤 이유로든 사용자 정의해야 하는 경우, 기존 워크플로 API를 사용하여 이 단계로 워크플로를 트리거할 수 있습니다.
게시해야 하는 콘텐츠만 게시하는 것이 좋습니다. 그리고 필요하지 않은 경우 많은 수의 콘텐츠를 게시하지 않도록 주의하십시오. 그러나 트리 활성화 워크플로 단계가 있는 워크플로를 통해 보낼 수 있는 콘텐츠 양에 대해서는 제한이 없습니다.
빠른 게시 취소/게시 - 예정된 게시 취소/게시 publish-unpublish
이 기능을 사용하면 게시 관리 접근 방식을 통해 가능한 추가 옵션 없이 선택한 페이지를 즉시 게시할 수 있습니다.
자세한 내용은 게시 관리를 참조하십시오.
설정 및 해제 시간 - 트리거 구성 on-and-off-times-trigger-configuration
설정 시간 및 해제 시간의 추가적인 활용 방법은 페이지 속성의 기본 탭에서 확인할 수 있습니다.
이 기능에 대한 자동 복제를 구현하려면 OSGi 구성에서 자동 복제를 사용하도록 설정 해제 트리거 구성합니다.
게시 관리 manage-publication
게시 관리는 빠른 게시보다 더 많은 옵션을 제공하여 하위 페이지 포함, 참조 맞춤화, 적용 가능한 워크플로 시작 및 나중에 게시할 수 있는 옵션 등을 가능하게 합니다.
“나중에 게시” 옵션에 대해 폴더의 하위 항목을 포함하면 트리 복제 워크플로에 설명된 콘텐츠 트리 게시 워크플로가 호출됩니다.
게시 관리에 대한 자세한 내용은 게시 기본 사항 설명서를 참조하십시오.
심층 콘텐츠 계층을 대량으로 복제하려면 워크플로우 기반 접근 방식을 사용하십시오. 권장 트리 활성화 워크플로 단계, 구성 매개 변수 및 모니터링 지침은 트리 복제 워크플로를 참조하십시오. 더 이상 사용되지 않는 콘텐츠 트리 게시 워크플로도 여기에 참조용으로 설명되어 있습니다.
복제 API replication-api
AEM as a Cloud Service에 포함된 복제 API를 사용하여 콘텐츠를 게시할 수 있습니다.
자세한 내용은 API 설명서를 참조하십시오.
API 기본 사용
@Reference
Replicator replicator;
@Reference
ReplicationStatusProvider replicationStatusProvider;
....
Session session = ...
// Activate a single page to all agents, which are active by default
replicator.replicate(session,ReplicationActionType.ACTIVATE,"/content/we-retail/en");
// Activate multiple pages (but try to limit it to approx 100 at max)
replicator.replicate(session,ReplicationActionType.ACTIVATE, new String[]{"/content/we-retail/en","/content/we-retail/de"});
// ways to get the replication status
Resource enResource = resourceResolver.getResource("/content/we-retail/en");
Resource deResource = resourceResolver.getResource("/content/we-retail/de");
ReplicationStatus enStatus = enResource.adaptTo(ReplicationStatus.class);
// if you need to get the status for more than 1 resource at once, this approach is more performant
Map<String,ReplicationStatus> allStatus = replicationStatusProvider.getBatchReplicationStatus(enResource,deResource);
복제 에이전트
AEM as a Cloud Service은 Sling 콘텐츠 배포를 통해 작성자에서 대상 계층으로 콘텐츠를 라우팅하는 두 개의 사전 정의된 복제 에이전트를 제공합니다.
- 게시 — 활성화된 콘텐츠를 라이브 게시 계층에 복제합니다. 이 에이전트는 기본적으로 활성화되어 있으며, 별도로 지정하지 않는 한 UI, 워크플로우 또는 복제 API에서 게시할 때 사용됩니다.
- 미리 보기 - 작성자가 변경 내용을 라이브로 전환하기 전에 검토할 수 있도록 콘텐츠를 미리 보기 계층에 복제합니다. 이 에이전트는 기본적으로 활성화되지 않습니다.
도구 > 배포 > 배포에서 두 에이전트를 보고 모니터링할 수 있습니다.
에이전트 카드를 선택하면 상태, 로그 및 큐 세부 정보가 열립니다.
특정 에이전트를 사용한 복제
위와 같이 API를 사용하여 복제하면 기본적으로 활성화된 에이전트만 AEM as a Cloud Service에서 사용됩니다. 즉, 게시만 가능합니다. 미리 보기 계층에만 복제하려면 미리 보기 에이전트를 선택하는 AgentFilter을(를) 전달합니다.
다음 예를 참조하십시오.
private static final String PREVIEW_AGENT = "preview";
ReplicationStatus beforeStatus = enResource.adaptTo(ReplicationStatus.class); // beforeStatus.isActivated == false
ReplicationOptions options = new ReplicationOptions();
options.setFilter(new AgentFilter() {
@Override
public boolean isIncluded (Agent agent) {
return agent.getId().equals(PREVIEW_AGENT);
}
});
// will replicate only to preview
replicator.replicate(session,ReplicationActionType.ACTIVATE,"/content/we-retail/en", options);
ReplicationStatus afterStatus = enResource.adaptTo(ReplicationStatus.class); // afterStatus.isActivated == false
ReplicationStatus previewStatus = afterStatus.getStatusForAgent(PREVIEW_AGENT); // previewStatus.isActivated == true
AgentFilter 없이 복제하는 경우 publish만 사용되며 미리 보기 계층에는 영향을 주지 않습니다.
복제에 기본적으로 활성화된 에이전트가 하나 이상 포함된 경우에만 리소스의 전체 ReplicationStatus이(가) 업데이트됩니다. 위의 예에서는 preview만 사용되었으므로 ReplicationStatus.isActivated은(는) false 상태로 유지됩니다. 특정 에이전트(예: 미리 보기 전용 복제 후 getStatusForAgent("preview"))의 상태를 확인하려면 getStatusForAgent()을(를) 사용하고, 라이브 게시 계층의 경우 getStatusForAgent("publish")을(를) 사용합니다.
콘텐츠 무효화 방법 invalidating-content
작성자의 Sling 콘텐츠 무효화(SCD)(기본 메서드)를 사용하거나 복제 API를 사용하여 게시 Dispatcher 플러시 복제 에이전트를 호출하여 콘텐츠를 직접 무효화할 수 있습니다. 자세한 내용은 캐싱 페이지를 참조하십시오.
복제 API 용량 제한
한 번에 100개 이하의 경로를 복제하고 500개를 제한합니다. 한도를 초과하면 ReplicationException이(가) throw됩니다.
응용 프로그램 논리에 작은 단위의 복제가 필요하지 않은 경우 ReplicationOptions.setUseAtomicCalls을(를) false로 설정하여 이 제한을 극복할 수 있습니다. 이렇게 하면 원하는 수의 경로가 허용되며, 내부적으로 버킷이 생성되어 경로 수가 이 제한보다 낮게 유지됩니다.
복제 호출당 전송되는 콘텐츠 크기는 10 MB를 초과해서는 안 됩니다. 이 규칙에는 노드 및 속성이 포함되지만 바이너리는 포함되지 않습니다(워크플로 패키지 및 콘텐츠 패키지는 바이너리로 간주됨).
복제 큐 replication-queues
각 복제 에이전트에는 두 개의 복제 큐가 표시됩니다. AEM as a Cloud Service에는 더 이상 각 게시 pod에 대한 별도의 큐가 표시되지 않습니다. 게시 계층은 자동으로 확장되므로 pod당 큐는 복잡성을 가중시키므로 실질적인 이점 없이 복잡성을 가중시킵니다. 대기열 상태는 다음과 같이 통합됩니다.
- 지속됨 — 변경 사항은 게시 계층에 안정적으로 저장됩니다. 항목이 이 큐를 지운 후 콘텐츠는 지속됩니다. 게시 인스턴스는 시간이 지남에 따라 일관된 상태에 도달합니다.
- 완전히 게시됨 — 변경 사항이 모든 게시 포드에서 라이브되며 영향을 받는 경로에 대해 Dispatcher 캐시가 지워집니다. 항목이 이 큐를 지우면 방문자가 업데이트된 콘텐츠를 받습니다.
복제 큐 모니터링 monitor-replication-queues
-
AEM 전역 탐색에서 도구 > 배포로 이동합니다.
-
배포를 선택한 다음 게시 또는 미리 보기 에이전트 카드를 엽니다.
-
상태 탭에서 각 큐가 정상 상태를 표시하는지 확인하십시오. 보류 중인 항목은 처리 대기 중인 작업에 대해 검토하고 마지막으로 처리된 항목은 최근 활동에 대해 검토하십시오.
-
에이전트가 배포 서비스에 연결할 수 있는지 확인하려면 연결 테스트를 선택하십시오.
-
콘텐츠 게시 내역을 보려면 로그 탭을 선택하십시오.
문제 해결 troubleshooting
콘텐츠를 게시할 수 없는 경우에는 AEM 게시 서비스에서 게시가 되돌려집니다. 복제 큐 모니터링을 사용하여 에이전트 상태 탭을 열고 영향을 받는 큐를 식별합니다.
대기열에 빨간색 상태가 표시되면 보류 중인 항목을 검토하여 오류의 원인을 찾습니다. 대기열을 선택하여 보류 중인 항목을 확인한 다음 필요한 경우 개별 항목 또는 전체 대기열을 지웁니다.