卸載會在拓撲中分發包含Experience Manager實例的處理任務。 借由卸載,您可以使用特定的Experience Manager實例來執行特定類型的處理。 專業化的處理可讓您最大化可用伺服器資源的使用。
Offloading是以Apache Sling Discovery和Sling JobManager功能為基礎。 要使用卸載,請將Experience Manager群集添加到拓撲中,並標識群集處理的作業主題。 叢集由一或多個Experience Manager實例組成,因此單一實例被視為叢集。
有關向拓撲添加實例的資訊,請參見管理拓撲。
Sling JobManager和JobConsumer可建立在拓撲中處理的工作:
當JobManager建立作業時,卸載框架在拓撲中選擇Experience Manager群集以執行該作業:
有關優化任務分配的資訊,請參閱配置主題衝減。
當Offloading架構選擇叢集以執行工作,而叢集由多個例項組成時,Sling Distribution會決定叢集中哪個例項執行工作。
卸載框架支援將作業與儲存庫中的資源關聯的作業裝載。 當為處理資源建立作業並且作業卸載到另一台電腦時,作業負載很有用。
在建立作業時,僅保證裝載位於建立作業的實例上。 卸載作業時,複製代理確保在最終佔用作業的實例上建立裝載。 作業執行完成後,反向複製會將裝載複製回建立作業的例項。
拓撲是鬆散耦合的Experience Manager群集,它們參與卸載。 群集由一個或多個Experience Manager伺服器實例(單個實例被視為群集)組成。
每個Experience Manager實例都運行以下卸載相關服務:
拓撲的所有成員的發現服務指向其中一個成員的拓撲連接器。 在以下幾節中,此成員稱為根成員。
拓撲中的每個群集都包含一個被識別為領導者的實例。 群集領導者代表群集的其他成員與拓撲交互。 當領導者離開群集時,會自動選擇群集的新領導者。
使用拓撲瀏覽器來探索Experience Manager實例參與的拓撲狀態。 拓撲瀏覽器顯示拓撲的群集和實例。
對於每個群集,您會看到一個群整合員清單,其中指明每個成員加入群集的順序以及哪個成員是「領導者」。 「目前」屬性會指出您目前管理的例項。
對於群集中的每個實例,您可以看到幾個與拓撲相關的屬性:
使用Touch UI,按一下「工具」標籤。 (http://localhost:4502/tools.html)
在「Granite Operations」(花崗岩作業)區域中,按一下「Offloading Browser」(卸載瀏覽器)。
在導航面板中,按一下拓撲瀏覽器。
將出現參與拓撲的群集。
按一下群集可查看集群中實例及其ID、當前狀態和領導狀態的清單。
按一下例項ID以檢視更詳細的屬性。
您也可以使用Web控制台查看拓撲資訊。 控制台提供了拓撲群集的詳細資訊:
請按下列步驟開啟Web控制台的「拓撲管理」頁:
在瀏覽器中開啟Web Console。 (http://localhost:4502/system/console)
按一下主>拓撲管理。
Apache Sling Resource-Based Discovery Service會在每個執行個體上執行,以控制Experience Manager執行個體與拓撲互動的方式。
Discovery Service會定期向拓撲連接器服務發送POST請求(心跳),以建立和維護與拓撲的連接。 拓撲連接器服務維護允許加入拓撲的IP地址或主機名清單:
使用Web Console或sling:OsgiConfig節點來設定org.apache.sling.discovery.impt.Config服務的下列屬性:
屬性名稱 | OSGi名稱 | 說明 | 預設值 |
---|---|---|---|
心率逾時(秒) | heartbeatTimeout | 等待心率回應的秒數量,以秒為單位,目標例項才會被視為無法使用。 | 20 |
心率間隔(秒) | heartbeatInterval | 心率之間的秒數。 | 15 |
最小事件延遲(秒) | minEventDelay | 當拓撲發生變化時,將狀態從TOPOLOGY_CHANGING延遲到TOPOLOGY_CHANGED的時間。 當狀態為TOPOLOGY_CHANGING時,每次更改都會將延遲增加此時間量。 這種延遲可防止監聽器被事件淹沒。 若要不使用延遲,請指定0或負數。 |
3 |
拓撲連接器URL | topologyConnectorUrls | 用於發送心跳消息的拓撲連接器服務的URL。 | http://localhost:4502/libs/sling/topology/connector |
拓撲連接器允許清單 | topologyConnector白名單 | 本地拓撲連接器服務允許的IP地址或主機名清單。 | localhost 127.0.0.1 |
儲存庫描述符名稱 | leaderElectionRepositoryDescriptor | <無值> |
使用以下過程將CQ實例連接到拓撲的根成員。 該過程將實例指向根拓撲成員的拓撲連接器URL。 對拓撲的所有成員執行此過程。
對拓撲的根成員執行以下過程。 該過程將其他拓撲成員的名稱添加到其Discovery服務允許清單中。
使用卸載瀏覽器為拓撲中的Experience Manager實例配置主題使用。 您可以針對每個例項指定其所使用的主題。 例如,要配置拓撲以便只有一個實例使用特定類型的主題,請禁用除一個實例以外的所有實例上的主題。
作業是使用循環邏輯啟用相關主題的分佈數量例項。
使用Touch UI,按一下「工具」標籤。 (http://localhost:4502/tools.html)
在「Granite Operations」(花崗岩作業)區域中,按一下「Offloading Browser」(卸載瀏覽器)。
在導覽面板中,按一下「卸載瀏覽器」。
此時會顯示卸載主題和可使用主題的伺服器實例。
要禁用實例的主題消耗,請在topc名稱下按一下實例旁邊的禁用。
要配置實例的所有主題使用,請按一下任何主題下的實例標識符。
按一下主題旁邊的以下按鈕之一以配置實例的衝減行為,然後按一下保存:
注意: 為主題選擇「獨佔」時,所有其他主題都會自動設定為「禁用」。
Experience Manager已安裝數個JobConsumer實作。 這些JobConsumers註冊的主題會顯示在卸載瀏覽器中。 出現的其他主題是自訂JobConsumers已註冊的主題。 下表說明預設的JobConsumers。
工作主題 | 服務PID | 說明 |
---|---|---|
/ | org.apache.sling.event.impl.jobs.deprecated.EventAdminBridge | 已與Apache Sling一起安裝。 處理OSGi事件管理員所產生的作業,以便向後相容。 |
com/day/cq/replication/job/* | com.day.cq.replication.impl.AgentManagerImpl | 複製代理,用於復製作業負載。 |
com/adobe/granite/workflow/offloading | com.adobe.granite.workflow.core.offloading.WorkflowOffloadingJobConsumer | 處理DAM更新資產卸載程式工作流生成的作業。 |
Apache Sling Job Consumer Manager服務提供主題allow list和區塊清單屬性。 設定這些屬性,以啟用或停用Experience Manager例項上特定主題的處理。
注:如 果實例屬於拓撲,您也可以在拓撲中的任何電腦上使用卸載瀏覽器來啟用或禁用主題。
建立已啟用主題清單的邏輯首先允許允許清單中的所有主題,然後刪除塊清單中的主題。預設情況下,所有主題都是啟用的(允許清單值為*
)且不禁用任何主題(塊清單沒有值)。
使用Web控制台或sling:OsgiConfig
節點配置以下屬性。 對於sling:OsgiConfig
節點,Job Consumer Manager服務的PID是org.apache.sling.event.impl.jobs.JobConsumerManager。
Web Console中的屬性名稱 | OSGi ID | 說明 |
---|---|---|
主題白名單 | job.consumermanager.whitelist | 本地JobManager服務處理的主題清單。 &ast;的預設值使所有主題都發送到註冊的TopicConsumer服務。 |
主題黑名單 | job.consumermanager.blacklist | 本地JobManager服務不處理的主題清單。 |
卸載框架使用複製在作者和工作者之間傳輸資源。 卸載框架會在實例加入拓撲時自動建立複製代理。 代理是使用預設值建立的。 您必須手動更改代理用於驗證的密碼。
自動生成的複製代理的已知問題要求您手動建立新的複製代理。 在建立用於卸載的代理之前,請按照使用自動生成的複製代理的問題中的過程操作。
建立在實例之間傳輸作業負載以卸載的複製代理。 下圖顯示了從作者卸載到工作實例所需的代理。 The author has a Sling ID of 1 and the worker instance has a Sling ID of 2:
此設定需要以下三個代理:
此複製方案類似於作者和發佈實例之間使用的複製方案。 但是,對於卸載情況,涉及的所有實例都是編寫實例。
卸載框架使用拓撲獲取卸載實例的IP地址。 然後,框架會根據這些IP地址自動建立複製代理。 如果卸載實例的IP地址稍後更改,則在實例重新啟動後,該更改會自動在拓撲上顯示。 但是,卸載框架不會自動更新複製代理以反映新的IP地址。 為避免這種情況,請對拓撲中的所有實例使用固定的IP地址。
對複製代理的Name屬性使用特定格式,以便卸載框架自動為特定工作器實例使用正確的代理。
在作者實例上命名傳出代理:
offloading_<slingid>
,其中 <slingid>
是worker例項的Sling ID。
範例: offloading_f5c8494a-4220-49b8-b079-360a72f71559
在作者實例上命名反向代理:
offloading_reverse_<slingid>
,其中 <slingid>
是worker例項的Sling ID。
範例: offloading_reverse_f5c8494a-4220-49b8-b079-360a72f71559
在工作器實例上命名外框:
offloading_outbox
在作者上建立複製代理。 (請參見有關複製代理的文檔)。 指定任何Title。 Name必須遵循命名慣例。
使用以下屬性建立代理:
屬性 | 值 |
---|---|
設定>序列化類型 | 預設 |
傳輸>傳輸URI | https://<ip of target instance> :<port> /bin/receive?sling:authRequestLogin=1 |
傳輸>傳輸用戶 | 目標實例上的複製用戶 |
運輸>運輸密碼 | 目標實例上的複製用戶密碼 |
「延伸> HTTP方法」 | 貼文 |
「觸發器」>「忽略預設值」 | True |
在作者上建立反向複製代理。 (請參見複製代理的文檔。) 指定任何Title。 Name必須遵循命名慣例。
使用以下屬性建立代理:
屬性 | 值 |
---|---|
設定>序列化類型 | 預設 |
傳輸>傳輸URI | https://<ip of target instance> :<port> /bin/receive?sling:authRequestLogin=1 |
傳輸>傳輸用戶 | 目標實例上的複製用戶 |
運輸>運輸密碼 | 目標實例上的複製用戶密碼 |
「延伸> HTTP方法」 | 取得 |
在工作器實例上建立複製代理。 (請參見複製代理的文檔。) 指定任何Title。 名稱必須為offloading_outbox
。
使用下列屬性建立代理。
屬性 | 值 |
---|---|
設定>序列化類型 | 預設 |
傳輸>傳輸URI | repo://var/replication/outbox |
觸發器>忽略預設值 | True |
使用下列任一方法取得Experience Manager例項的Sling ID:
配置拓撲實例,使特定實例執行在DAM中添加或更新的資產的後台處理。
依預設,當DAM資產變更或新增DAM時,Experience Manager會執行DAM更新資產工作流程。 變更預設行為,讓Experience Manager改為執行DAM更新資產卸載程式工作流程。 此工作流將生成一個主題為com/adobe/granite/workflow/offloading
的JobManager作業。 然後,配置拓撲,以便將作業卸載到專用工作器。
當與工作流卸載一起使用時,不應使工作流為瞬態。 例如,當用於資產卸載時,「DAM更新資產」工作流程不得是暫時的。 要在工作流中設定/取消設定瞬態標誌,請參閱瞬態工作流。
以下過程假定卸載拓撲具有以下特徵:
在每個Experience Manager實例上,配置Discovery服務,使其指向根拓撲連接器。 (請參閱配置拓撲成員資格。)
配置根拓撲連接器,使連接實例位於允許清單中。
開啟「卸載瀏覽器」,並停用使用者互動以上傳或變更DAM資產之例項的com/adobe/granite/workflow/offloading
主題。
在使用者互動以上傳或變更DAM資產的每個例項上,設定工作流程啟動器以使用「DAM更新資產卸載」工作流程:
在執行DAM資產背景處理的例項上,停用執行DAM更新資產工作流程的工作流程啟動器。
除了本頁上顯示的詳細資訊外,您也可以閱讀下列內容: