複製 replication

復寫代理是Adobe Experience Manager (AEM)的核心,因為此機制可用於:

  • Publish (啟動)內容從作者環境移至Publish環境。
  • 明確從Dispatcher快取排清內容。
  • 將使用者輸入(例如表單輸入)從Publish環境傳回至作者環境(在作者環境的控制下)。

請求已排入佇列給適當的代理程式處理。

NOTE
不會在Author和Publish執行個體之間復寫使用者資料(使用者、使用者群組和使用者設定檔)。
針對多個Publish執行個體,啟用使用者同步處理時,使用者資料會進行Sling散發。

從作者復寫至Publish replicating-from-author-to-publish

復寫至Publish執行個體或Dispatcher需要幾個步驟:

  • 作者要求發佈(啟動)特定內容;這可以由手動要求或預先設定的自動觸發程式啟動。

  • 此請求會傳遞至適當的預設復寫代理程式;一個環境可以有多個預設代理程式,這些代理程式一律會選取用於此類動作。

  • 復寫代理程式會「封裝」內容,並將其置於復寫佇列中。

  • 在[網站]索引標籤中,已為個別頁面設定彩色狀態指示器

  • 內容會從佇列中提取,並使用設定的通訊協定傳輸至Publish環境;這通常是HTTP。

  • Publish環境中的servlet會接收要求並發佈收到的內容;預設servlet為https://localhost:4503/bin/receive

  • 可以設定多個作者和Publish環境。

chlimage_1-21

從Publish復寫至作者 replicating-from-publish-to-author

部分功能可讓使用者在Publish執行個體上輸入資料。

有時候,您需要使用稱為反向復寫的復寫型別,將此資料傳回至製作環境,再從此處重新分配至其他Publish環境。 基於安全性考量,從Publish到製作環境的任何流量都必須受到嚴格控制。

反向復寫會在Publish環境中使用參照製作環境的代理程式。 此代理程式會將資料放入寄件匣。 此寄件匣與製作環境中的復寫接聽程式相符。 監聽器會輪詢寄件匣,以收集輸入的任何資料,然後視需要加以散發。 這可確保作者環境可控制所有流量。

在其他情況下,例如對於Communities功能(例如論壇、部落格、評論和評論),在Publish環境中輸入的使用者產生內容(UGC)量,很難使用復寫在AEM執行個體之間有效同步。

AEM 社群從未使用復寫來進行UGC。 Communities的部署需要UGC的共同存放區(請參閱Community Content Storage)。

復寫 — 立即可用 replication-out-of-the-box

AEM標準安裝中包含的We-Retail網站可用於說明復寫。

若要遵循此範例並使用預設的復寫代理程式,安裝AEM,包含:

  • 連線埠4502上的作者環境
  • 連線埠4503上的Publish環境
NOTE
預設為啟用:
  • 作者上的代理程式:預設代理程式(發佈)
預設有效停用(自AEM 6.1起) :
  • 製作代理程式:反向復寫代理程式(publish_reverse)
  • Publish上的代理程式:反向復寫(寄件匣)
若要檢查代理程式或佇列的狀態,請使用​ 工具 ​主控台。
請參閱監視您的復寫代理程式

復寫(製作至Publish) replication-author-to-publish

  1. 導覽至作者環境上的支援頁面。
    https://localhost:4502/content/we-retail/us/en/experience.html <pi>
  2. 編輯頁面,以便新增一些文字。
  3. 啟動頁面,以便發佈變更。
  4. 在Publish環境中開啟支援頁面:
    https://localhost:4503/content/we-retail/us/en/experience.html
  5. 您現在可以看到您在Author上輸入的變更。

系統會從製作環境執行下列動作來執行此復寫:

  • 預設代理程式(發佈)
    此代理程式會將內容復寫至預設的Publish執行個體。
    您可以從製作環境的「工具」主控台存取此專案的詳細資訊(設定和記錄);或:
    https://localhost:4502/etc/replication/agents.author/publish.html

復寫代理程式 — 立即可用 replication-agents-out-of-the-box

標準AEM安裝提供下列代理程式:

  • 預設代理程式
    用於從Author復寫至Publish。

  • Dispatcher Flush
    此項用於管理Dispatcher快取。 如需詳細資訊,請參閱使編寫環境中的Dispatcher快取失效使發佈執行個體中的Dispatcher快取失效

  • 反向復寫
    用於從Publish復寫至作者。 反向復寫不適用於Communities功能,例如論壇、部落格和評論。 由於未啟用寄件匣,因此此功能實際上已停用。 使用反向復寫需要自訂設定。

  • 靜態代理程式
    這是「將節點的靜態表示儲存到檔案系統中的代理程式」。
    例如,使用預設設定時,內容頁面和DAM資產會以HTML或適當的資產格式儲存在/tmp下。 檢視設定的SettingsRules標籤。
    已要求此專案,以便當直接從應用程式伺服器要求頁面時,可以看到內容。 這是專門的代理程式,(可能)在大多數執行個體中並非必要。

復寫代理程式 — 設定引數 replication-agents-configuration-parameters

從「工具」控制檯設定復寫代理程式時,對話方塊中有四個索引標籤可用:

設定 settings

  • 名稱

    復寫代理的唯一名稱。

  • 說明

    此復寫代理程式用途的說明。

  • 已啟用

    表示復寫代理程式是否已啟用。

    代理程式為​ 已啟用 ​時,佇列會顯示為:

    • 處理專案時​ 使用中
    • 佇列為空時​ 閒置
    • 專案在佇列中時​ 已封鎖,但無法處理;例如,接收佇列已停用。
  • 序列化型別

    序列化的型別:

    • 預設:設定是否自動選取代理程式。
    • Dispatcher Flush:如果要使用代理程式來排清Dispatcher快取,請選取此選項。
  • 重試延遲

    若發生問題,兩次重試之間的延遲(等待時間,以毫秒為單位)。

    預設: 60000

  • 代理程式使用者ID

    根據環境,代理程式會使用此使用者帳戶來:

    • 從製作環境收集內容並封裝
    • 在Publish環境中建立及撰寫內容

    將此欄位保留空白以使用系統使用者帳戶(在sling中定義為管理員使用者的帳戶;預設為admin)。

    note caution
    CAUTION
    對於作者環境上的代理程式,此帳戶​ 必須 ​擁有您要復寫之所有路徑的讀取存取權。
    note caution
    CAUTION
    對於Publish環境上的代理程式,此帳戶​ 必須 ​具有復寫內容所需的建立/寫入許可權。
    note note
    NOTE
    這可用來作為選取復製作業特定內容的機制。
  • 記錄層級

    指定用於記錄訊息的詳細資訊等級。

    • Error:僅記錄錯誤
    • Info:記錄錯誤、警告和其他資訊訊息
    • Debug:訊息中使用高層級的詳細資料,主要用於偵錯

    預設: Info

  • 用於反向復寫

    指出此代理程式是否用於反向復寫;將使用者輸入從Publish傳回至作者環境。

  • 別名更新

    選取此選項可啟用Dispatcher的別名或虛名路徑失效請求。 另請參閱設定Dispatcher Flush代理程式

傳輸 transport

  • URI

    這會指定目標位置的接收servlet。 尤其是,您可以在此處指定目標執行個體的主機名稱(或別名)和內容路徑。

    例如:

    • 預設代理程式可以復寫至https://localhost:4503/bin/receive
    • Dispatcher Flush代理程式可能會復寫至https://localhost:8000/dispatcher/invalidate.cache

    此處指定的通訊協定(HTTP或HTTPS)會決定傳輸方法。

    對於Dispatcher Flush代理程式,只有當您使用以路徑為根據的虛擬主機專案來區分陣列時,才會使用URI屬性,而您會使用此欄位來鎖定要失效的陣列。 例如,陣列 #1 的虛擬主機為 www.mysite.com/path1/*,而陣列 #2 的虛擬主機為 www.mysite.com/path2/*。您可以使用URL /path1/invalidate.cache來鎖定第一個伺服器陣列,並使用/path2/invalidate.cache來鎖定第二個伺服器陣列。

  • 使用者

    用於存取目標的帳戶使用者名稱。

  • 密碼

    用於存取目標的帳戶密碼。

  • NTLM網域

    NTML驗證的網域。

  • NTLM主機

    NTML驗證的主機。

  • 啟用寬鬆SSL

    如果您希望接受自我認證的SSL憑證,請啟用。

  • 允許過期的憑證

    若要接受過期的SSL憑證,請啟用。

Proxy proxy

只有在需要Proxy時,才需要下列設定:

  • Proxy主機

    用於傳輸的Proxy主機名稱。

  • 代理主機連線埠

    Proxy的連線埠。

  • Proxy使用者

    要使用的帳戶使用者名稱。

  • Proxy密碼

    要使用的帳戶密碼。

  • Proxy NTLM網域

    代理NTLM網域。

  • Proxy NTLM主機

    代理NTLM網域。

延伸 extended

  • 介面

    您可以在此處定義要繫結的通訊端介面。

    這會設定建立連線時要使用的本機位址。 如果未設定,則使用預設地址。 這對於指定要在多主伺服器或叢集化系統上使用的介面非常有用。

  • HTTP方法

    要使用的HTTP方法。

    對於Dispatcher Flush代理程式,這幾乎一律為GET且不應變更(POST是另一個可能的值)。

  • HTTP標頭

    這些用於Dispatcher Flush代理程式,並指定必須清除的元素。

    若為Dispatcher Flush代理程式,三個標準專案不需要變更:

    • CQ-Action:{action}
    • CQ-Handle:{path}
    • CQ-Path:{path}

    在適當情況下,這些字元可用於指出排清控制代碼或路徑時要使用的動作。 子引數是動態的:

    • {action}表示復寫動作

    • {path}表示路徑

    這些變數會由與請求相關的路徑/動作取代,因此不需要「硬式編碼」:

    note note
    NOTE
    如果您在建議預設內容以外的內容中安裝了AEM,則必須在HTTP標頭中註冊該內容。 例如:
    CQ-Handle:/<*yourContext*>{path}
  • 關閉連線

    啟用,以便您在每次請求後都可關閉連線。

  • 連線逾時

    嘗試建立連線時要套用的逾時(毫秒)。

  • 通訊端逾時

    建立連線後等待流量時所套用的逾時(毫秒)。

  • 通訊協定版本

    通訊協定的版本。 例如,HTTP/1.0為1.0

觸發器 triggers

這些設定是用來定義自動復寫的觸發程式:

  • 忽略預設值

    如果勾選,代理將從預設復寫中排除;這意味著如果內容作者發出復寫動作,則不會使用代理。

  • 修改

    在此,當頁面修改時,將自動觸發此代理程式的復寫。 用於Dispatcher Flush代理程式,也用於反向復寫。

  • 在散發中

    如果勾選,代理程式會在修改內容時自動複製標籤為分發的任何內容。

  • 已達到​ 開啟/關閉時間

    當為頁面定義的時間或折扣發生時,就會觸發自動復寫(以視需要啟用或停用頁面)。 這主要用於Dispatcher Flush代理程式。

  • 接收時​

    如果勾選,代理會在接收到復寫事件時進行復寫。

  • 無狀態更新

    選取後,代理程式不會強制復寫狀態更新。

  • 沒有版本設定

    選取後,代理程式不會強制活動頁面的版本設定。

設定復寫代理 configuring-your-replication-agents

如需有關使用MSSL將復寫代理程式連線到Publish執行個體的資訊,請參閱使用雙向SSL復寫

從製作環境設定復寫代理 configuring-your-replication-agents-from-the-author-environment

在製作環境的「工具」標籤中,您可以設定位於製作環境(製作代理程式)或Publish環境(Publish代理程式)中的復寫代理程式。 以下程式說明為Author環境設定代理程式,但可用於兩者。

NOTE
當Dispatcher處理製作或Publish例項的HTTP請求時,復寫代理程式的HTTP請求必須包含PATH標頭。 除了下列程式外,您必須將PATH標頭新增到Dispatcher的使用者端標頭清單。 請參閱/clientheaders (Client Headers)
  1. 存取AEM中的​ 工具 ​索引標籤。

  2. 按一下​ 復寫 (左窗格以開啟資料夾)。

  3. 在作者​ 上(左窗格或右窗格)連按兩下 ​代理程式。

  4. 按一下適當的代理程式名稱(連結)以顯示該代理程式的詳細資訊。

  5. 按一下​ 編輯 ​以開啟設定對話方塊:

    chlimage_1-22

  6. 提供的值應足以進行預設安裝。 若您進行變更,請按一下[確定] ​以儲存變更(如需個別引數的詳細資訊,請參閱復寫代理程式 — 設定引數)。

NOTE
AEM的標準安裝指定admin為預設復寫代理程式內傳輸認證的使用者。
這應該變更為具有複製所需路徑之許可權的站台特定複製使用者帳戶。

設定反向復寫 configuring-reverse-replication

反向復寫用於將在Publish執行個體上產生的使用者內容取回到Author執行個體。 這通常用於調查和登錄檔單等功能。

基於安全理由,大多數網路拓撲不允許連線​ 來自 ​的「非軍事區域」(將外部服務公開給不受信任的網路,例如網際網路的子網路)。

由於Publish環境通常位於DMZ,若要將內容傳回製作環境,必須從製作執行個體起始連線。 這是透過下列專案完成的:

  • 內容所在的Publish環境中的​ 寄件匣
  • 製作環境中的代理程式(發佈),會定期輪詢寄件匣以尋找新內容。
NOTE
對於AEM Communities,復寫不會用於Publish執行個體上使用者產生的內容。 請參閱社群內容存放區

若要這麼做,您需要:

作者環境中的反向復寫代理程式 — 作為作用中元件,從Publish環境中的寄件匣收集資訊:

如果您想要使用反向復寫,請確定此代理程式已啟用。

chlimage_1-23

Publish環境中的反向復寫代理程式(寄件匣) — 當做寄件匣時的被動元素。 使用者輸入會放置在這裡,由代理程式在製作環境中收集。

chlimage_1-1

為多個Publish執行個體設定復寫 configuring-replication-for-multiple-publish-instances

NOTE
僅複製內容 — 不複製使用者資料(使用者、使用者群組和使用者設定檔)。
若要同步多個Publish執行個體的使用者資料,請啟用使用者同步處理

安裝後,已設定預設代理程式,以便將內容復寫至在localhost的連線埠4503上執行的Publish執行個體。

若要為其他Publish執行個體設定內容復寫,請建立和設定新的復寫代理程式:

  1. 在AEM中開啟​ 工具 ​索引標籤。

  2. 在左側面板中選取​ 復寫,然後選取​ 作者代理程式

  3. 選取​ 新增……

  4. 設定​ 標題 ​和​ 名稱,然後選取​ 復寫代理程式

  5. 按一下[建立​ ]以建立代理程式。

  6. 連按兩下新代理程式專案,組態面板就會開啟。

  7. 按一下​ 編輯 - 代理程式設定 ​對話方塊開啟 — 序列化型別 ​已定義為預設,必須保持此狀態。

    • 在​ 設定 ​索引標籤中:

      • 啟動​ 已啟用

      • 輸入​ 描述

      • 將​ 重試延遲 ​設定為60000

      • 將​ 序列化型別 ​保留為Default

    • 在​ 傳輸 ​索引標籤中:

      • 輸入新Publish執行個體所需的URI;例如,

        https://localhost:4504/bin/receive

      • 輸入用於復寫的站台特定使用者帳戶。

      • 您可以視需要設定其他引數。

  8. 按一下​ 「確定」

接著,您可以在作者環境中更新,然後發佈頁面,以測試操作。

更新會顯示在已如上設定的所有Publish執行個體上。

如果您遇到任何問題,可以檢視Author執行個體上的記錄。 視所需的詳細程度而定,您也可以使用上述​ 代理程式設定 ​對話方塊,將​ 記錄層級 ​設定為Debug

NOTE
這可以結合使用代理程式使用者ID來選取不同的內容,以復寫至個別的Publish環境。 針對每個Publish環境:
  1. 設定復寫代理以復寫至該Publish環境。
  2. 設定使用者帳戶;具有讀取復寫至該特定Publish環境的內容所需的存取許可權。
  3. 將使用者帳戶指派為復寫代理程式的​ 代理程式使用者識別碼

設定Dispatcher Flush代理程式 configuring-a-dispatcher-flush-agent

預設代理程式會包含在安裝中。 不過,您仍需要特定設定,如果您定義新的代理程式,也同樣適用:

  1. 在AEM中開啟​ 工具 ​索引標籤。

  2. 按一下​ 部署

  3. 選取​ 復寫,然後選取Publish 上的 ​代理程式。

  4. 連按兩下​ Dispatcher Flush ​專案以開啟概覽。

  5. 按一下​ 編輯 - 代理程式設定 ​對話方塊開啟:

    • 在​ 設定 ​索引標籤中:

      • 啟動​ 已啟用

      • 輸入​ 描述

      • 將​ 序列化型別 ​保留為Dispatcher Flush,或是在建立代理程式時將其設為相同型別。

      • (選擇性)選取​ 別名更新 ​以啟用Dispatcher的別名或虛名路徑失效請求。

    • 在​ 傳輸 ​索引標籤中:

      • 輸入新Publish執行個體所需的URI;例如,

        https://localhost:80/dispatcher/invalidate.cache

      • 輸入用於復寫的站台特定使用者帳戶。

      • 您可以視需要設定其他引數。

    對於Dispatcher Flush代理程式,只有當您使用以路徑為根據的虛擬主機專案來區分陣列時,才會使用URI屬性,而您會使用此欄位來鎖定要失效的陣列。 例如,陣列 #1 的虛擬主機為 www.mysite.com/path1/*,而陣列 #2 的虛擬主機為 www.mysite.com/path2/*。您可以使用URL /path1/invalidate.cache來鎖定第一個伺服器陣列,並使用/path2/invalidate.cache來鎖定第二個伺服器陣列。

    note note
    NOTE
    如果您已在非建議預設內容的內容中安裝AEM,請在​ 延伸 ​索引標籤中設定HTTP標頭
  6. 按一下​ 「確定」

  7. 返回​ 工具 ​標籤,您可以從這裡​ 啟用 Dispatcher Flush ​代理程式({Publish上的​ 個代理程式)。

Dispatcher Flush ​復寫代理程式在作者上未啟用。 您可以使用對等的URI (例如https://localhost:4503/etc/replication/agents.publish/flush.html),在Publish環境中存取相同的頁面。

控制對復寫代理程式的存取 controlling-access-to-replication-agents

使用etc/replication節點上的使用者和/或群組頁面許可權,即可控制用來設定復寫代理程式的頁面存取權。

NOTE
設定這類許可權不會影響使用者復寫內容(例如,從網站主控台或Sidekick選項)。 復寫架構在復寫頁面時,不會使用目前使用者的「使用者工作階段」來存取復寫代理。

從CRXDE Lite設定您的復寫代理 configuring-your-replication-agents-from-crxde-lite

NOTE
僅支援在/etc/replication存放庫位置中建立復寫代理。 必須具備此條件才能正確處理關聯的ACL。 在樹狀結構的其他位置建立復寫代理程式,可能會導致未經授權的存取。

您可以使用CRXDE Lite來設定復寫代理的各種引數。

如果您導覽至/etc/replication,您會看到下列三個節點:

  • agents.author
  • agents.publish
  • treeactivation

兩個agents保留適當環境的組態資訊,而且只有在環境執行時才有效。 例如,agents.publish僅用於Publish環境。 以下熒幕擷圖顯示製作環境中的Publish代理程式(包含在AEM WCM中):

chlimage_1-24

監視復寫代理程式 monitoring-your-replication-agents

監督復寫代理程式:

  1. 存取AEM中的​ 工具 ​索引標籤。

  2. 按一下​ 復寫

  3. 連按兩下適當環境(左窗格或右窗格)代理程式的連結。 例如,作者​ 上的 ​代理程式。

    產生的視窗會顯示製作環境的所有復寫代理程式概觀,包括其目標和狀態。

  4. 按一下適當的代理程式名稱(連結)以顯示該代理程式的詳細資訊:

    chlimage_1-2

    您可以在這裡進行以下作業︰

    • 檢視代理程式是否已啟用。

    • 檢視任何復寫的目標。

    • 檢視復寫佇列是否為使用中(已啟用)。

    • 檢視佇列中是否有任何專案。

    • 重新整理 ​或​ 清除 ​以更新佇列專案的顯示。 這可協助您檢視專案是否進入及離開佇列。

    • 檢視記錄檔 ​以存取復寫代理程式的任何動作記錄檔。

    • 測試目標執行個體的連線

    • 如有需要,對任何佇列專案強制重試​

    note caution
    CAUTION
    請勿對Publish執行個體上的「反向復寫寄件匣」使用「測試連線」連結。
    如果對Outbox佇列執行復寫測試,則任何早於測試復寫的專案都會透過每次反向復寫重新處理。
    如果佇列中存有這類專案,可在下列XPath JCR查詢中找到並移除它們。
    /jcr:root/var/replication/outbox//*[@cq:repActionType='TEST']

批次復寫 batch-replication

批次複製不會複製個別頁面或資產,但會根據時間或大小等待觸發兩者的第一個臨界值。

接著,它會將所有復寫專案封裝到一個封裝中,然後以單一檔案的形式復寫到發行者。

Publisher會解壓縮所有專案、儲存專案,並向作者回報。

設定批次複製 configuring-batch-replication

  1. 前往http://serveraddress:serverport/siteadmin
  2. 按熒幕上方的​ 工具 ​圖示
  3. 從左側導覽邊欄中,移至​ 復寫 — 作者上的代理程式,然後按兩下​ 預設代理程式
    • 您也可以直接前往http://serveraddress:serverport/etc/replication/agents.author/publish.html,取得預設的Publish復寫代理程式
  4. 按復寫佇列上方的​ 編輯 ​按鈕。
  5. 在下列視窗中,移至​ 批次 ​標籤:
    批次復寫
  6. 設定代理。

參數 parameters

  • Enable Batch Mode — 啟用或停用批次復寫模式
  • Max Wait Time — 批次要求啟動前的等待時間上限(以秒為單位)。 預設值為2秒。
  • Trigger Size — 在此大小限制時開始批次復寫

其他資源 additional-resources

如需疑難排解的詳細資訊,請參閱疑難排解復寫頁面。

recommendation-more-help
19ffd973-7af2-44d0-84b5-d547b0dffee2