複製 replication
復寫代理是Adobe Experience Manager (AEM)的核心,因為此機制可用於:
- Publish (啟動)內容從作者環境移至Publish環境。
- 明確從Dispatcher快取排清內容。
- 將使用者輸入(例如表單輸入)從Publish環境傳回至作者環境(在作者環境的控制下)。
請求已排入佇列給適當的代理程式處理。
從作者復寫至Publish replicating-from-author-to-publish
復寫至Publish執行個體或Dispatcher需要幾個步驟:
-
作者要求發佈(啟動)特定內容;這可以由手動要求或預先設定的自動觸發程式啟動。
-
此請求會傳遞至適當的預設復寫代理程式;一個環境可以有多個預設代理程式,這些代理程式一律會選取用於此類動作。
-
復寫代理程式會「封裝」內容,並將其置於復寫佇列中。
-
在[網站]索引標籤中,已為個別頁面設定彩色狀態指示器。
-
內容會從佇列中提取,並使用設定的通訊協定傳輸至Publish環境;這通常是HTTP。
-
Publish環境中的servlet會接收要求並發佈收到的內容;預設servlet為
https://localhost:4503/bin/receive
。 -
可以設定多個作者和Publish環境。
從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環境
- 作者上的代理程式:預設代理程式(發佈)
- 製作代理程式:反向復寫代理程式(publish_reverse)
- Publish上的代理程式:反向復寫(寄件匣)
請參閱監視您的復寫代理程式。
復寫(製作至Publish) replication-author-to-publish
- 導覽至作者環境上的支援頁面。
https://localhost:4502/content/we-retail/us/en/experience.html<pi>
- 編輯頁面,以便新增一些文字。
- 啟動頁面,以便發佈變更。
- 在Publish環境中開啟支援頁面:
https://localhost:4503/content/we-retail/us/en/experience.html - 您現在可以看到您在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
下。 檢視設定的Settings
和Rules
標籤。
已要求此專案,以便當直接從應用程式伺服器要求頁面時,可以看到內容。 這是專門的代理程式,(可能)在大多數執行個體中並非必要。
復寫代理程式 — 設定引數 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環境設定代理程式,但可用於兩者。
-
存取AEM中的 工具 索引標籤。
-
按一下 復寫 (左窗格以開啟資料夾)。
-
在作者 上(左窗格或右窗格)連按兩下 代理程式。
-
按一下適當的代理程式名稱(連結)以顯示該代理程式的詳細資訊。
-
按一下 編輯 以開啟設定對話方塊:
-
提供的值應足以進行預設安裝。 若您進行變更,請按一下[確定] 以儲存變更(如需個別引數的詳細資訊,請參閱復寫代理程式 — 設定引數)。
admin
為預設復寫代理程式內傳輸認證的使用者。設定反向復寫 configuring-reverse-replication
反向復寫用於將在Publish執行個體上產生的使用者內容取回到Author執行個體。 這通常用於調查和登錄檔單等功能。
基於安全理由,大多數網路拓撲不允許連線 來自 的「非軍事區域」(將外部服務公開給不受信任的網路,例如網際網路的子網路)。
由於Publish環境通常位於DMZ,若要將內容傳回製作環境,必須從製作執行個體起始連線。 這是透過下列專案完成的:
- 內容所在的Publish環境中的 寄件匣。
- 製作環境中的代理程式(發佈),會定期輪詢寄件匣以尋找新內容。
若要這麼做,您需要:
作者環境中的反向復寫代理程式 — 作為作用中元件,從Publish環境中的寄件匣收集資訊:
如果您想要使用反向復寫,請確定此代理程式已啟用。
Publish環境中的反向復寫代理程式(寄件匣) — 當做寄件匣時的被動元素。 使用者輸入會放置在這裡,由代理程式在製作環境中收集。
為多個Publish執行個體設定復寫 configuring-replication-for-multiple-publish-instances
安裝後,已設定預設代理程式,以便將內容復寫至在localhost的連線埠4503上執行的Publish執行個體。
若要為其他Publish執行個體設定內容復寫,請建立和設定新的復寫代理程式:
-
在AEM中開啟 工具 索引標籤。
-
在左側面板中選取 復寫,然後選取 作者代理程式。
-
選取 新增……。
-
設定 標題 和 名稱,然後選取 復寫代理程式。
-
按一下[建立 ]以建立代理程式。
-
連按兩下新代理程式專案,組態面板就會開啟。
-
按一下 編輯 - 代理程式設定 對話方塊開啟 — 序列化型別 已定義為預設,必須保持此狀態。
-
在 設定 索引標籤中:
-
啟動 已啟用。
-
輸入 描述。
-
將 重試延遲 設定為
60000
。 -
將 序列化型別 保留為
Default
。
-
-
在 傳輸 索引標籤中:
-
輸入新Publish執行個體所需的URI;例如,
https://localhost:4504/bin/receive
。 -
輸入用於復寫的站台特定使用者帳戶。
-
您可以視需要設定其他引數。
-
-
-
按一下 「確定」。
接著,您可以在作者環境中更新,然後發佈頁面,以測試操作。
更新會顯示在已如上設定的所有Publish執行個體上。
如果您遇到任何問題,可以檢視Author執行個體上的記錄。 視所需的詳細程度而定,您也可以使用上述 代理程式設定 對話方塊,將 記錄層級 設定為Debug
。
- 設定復寫代理以復寫至該Publish環境。
- 設定使用者帳戶;具有讀取復寫至該特定Publish環境的內容所需的存取許可權。
- 將使用者帳戶指派為復寫代理程式的 代理程式使用者識別碼。
設定Dispatcher Flush代理程式 configuring-a-dispatcher-flush-agent
預設代理程式會包含在安裝中。 不過,您仍需要特定設定,如果您定義新的代理程式,也同樣適用:
-
在AEM中開啟 工具 索引標籤。
-
按一下 部署。
-
選取 復寫,然後選取Publish 上的 代理程式。
-
連按兩下 Dispatcher Flush 專案以開啟概覽。
-
按一下 編輯 - 代理程式設定 對話方塊開啟:
-
在 設定 索引標籤中:
-
啟動 已啟用。
-
輸入 描述。
-
將 序列化型別 保留為
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標頭。 -
-
按一下 「確定」。
-
返回 工具 標籤,您可以從這裡 啟用 Dispatcher Flush 代理程式({Publish上的 個代理程式)。
Dispatcher Flush 復寫代理程式在作者上未啟用。 您可以使用對等的URI (例如https://localhost:4503/etc/replication/agents.publish/flush.html
),在Publish環境中存取相同的頁面。
控制對復寫代理程式的存取 controlling-access-to-replication-agents
使用etc/replication
節點上的使用者和/或群組頁面許可權,即可控制用來設定復寫代理程式的頁面存取權。
從CRXDE Lite設定您的復寫代理 configuring-your-replication-agents-from-crxde-lite
/etc/replication
存放庫位置中建立復寫代理。 必須具備此條件才能正確處理關聯的ACL。 在樹狀結構的其他位置建立復寫代理程式,可能會導致未經授權的存取。您可以使用CRXDE Lite來設定復寫代理的各種引數。
如果您導覽至/etc/replication
,您會看到下列三個節點:
agents.author
agents.publish
treeactivation
兩個agents
保留適當環境的組態資訊,而且只有在環境執行時才有效。 例如,agents.publish
僅用於Publish環境。 以下熒幕擷圖顯示製作環境中的Publish代理程式(包含在AEM WCM中):
監視復寫代理程式 monitoring-your-replication-agents
監督復寫代理程式:
-
存取AEM中的 工具 索引標籤。
-
按一下 復寫。
-
連按兩下適當環境(左窗格或右窗格)代理程式的連結。 例如,作者 上的 代理程式。
產生的視窗會顯示製作環境的所有復寫代理程式概觀,包括其目標和狀態。
-
按一下適當的代理程式名稱(連結)以顯示該代理程式的詳細資訊:
您可以在這裡進行以下作業︰
-
檢視代理程式是否已啟用。
-
檢視任何復寫的目標。
-
檢視復寫佇列是否為使用中(已啟用)。
-
檢視佇列中是否有任何專案。
-
重新整理 或 清除 以更新佇列專案的顯示。 這可協助您檢視專案是否進入及離開佇列。
-
檢視記錄檔 以存取復寫代理程式的任何動作記錄檔。
-
測試目標執行個體的連線。
-
如有需要,對任何佇列專案強制重試 。
note caution CAUTION 請勿對Publish執行個體上的「反向復寫寄件匣」使用「測試連線」連結。 如果對Outbox佇列執行復寫測試,則任何早於測試復寫的專案都會透過每次反向復寫重新處理。 如果佇列中存有這類專案,可在下列XPath JCR查詢中找到並移除它們。 /jcr:root/var/replication/outbox//*[@cq:repActionType='TEST']
-
批次復寫 batch-replication
批次複製不會複製個別頁面或資產,但會根據時間或大小等待觸發兩者的第一個臨界值。
接著,它會將所有復寫專案封裝到一個封裝中,然後以單一檔案的形式復寫到發行者。
Publisher會解壓縮所有專案、儲存專案,並向作者回報。
設定批次複製 configuring-batch-replication
- 前往
http://serveraddress:serverport/siteadmin
- 按熒幕上方的 工具 圖示
- 從左側導覽邊欄中,移至 復寫 — 作者上的代理程式,然後按兩下 預設代理程式。
- 您也可以直接前往
http://serveraddress:serverport/etc/replication/agents.author/publish.html
,取得預設的Publish復寫代理程式
- 您也可以直接前往
- 按復寫佇列上方的 編輯 按鈕。
- 在下列視窗中,移至 批次 標籤:
- 設定代理。
參數 parameters
Enable Batch Mode
— 啟用或停用批次復寫模式Max Wait Time
— 批次要求啟動前的等待時間上限(以秒為單位)。 預設值為2秒。Trigger Size
— 在此大小限制時開始批次復寫
其他資源 additional-resources
如需疑難排解的詳細資訊,請參閱疑難排解復寫頁面。