正在解除安裝工作 offloading-jobs

簡介 introduction

解除安裝會將處理工作分散到拓撲中的Experience Manager執行個體之間。 解除安裝時,您可以使用特定Experience Manager例項來執行特定型別的處理。 專業化的處理可讓您最大限度地使用可用的伺服器資源。

解除安裝是根據Apache Sling Discovery和Sling JobManager功能。 若要使用解除安裝,您可以將Experience Manager叢集新增至拓朴,並識別叢集處理的工作主題。 叢集是由一或多個Experience Manager執行處理所組成,因此單一執行處理會被視為叢集。

如需將執行個體加入至拓撲的詳細資訊,請參閱管理拓撲

工作分佈 job-distribution

Sling JobManager和JobConsumer可讓您建立拓撲中處理的工作:

  • JobManager:為特定主題建立工作的服務。
  • JobConsumer:執行一或多個主題工作的服務。 可以針對相同主題註冊多個JobConsumer服務。

當JobManager建立作業時,解除安裝架構會在拓撲中選取Experience Manager叢集以執行作業:

  • 叢集必須包含一或多個執行處理執行已針對工作主題註冊的JobConsumer。
  • 叢集中至少必須啟用一個執行處理的主題。

請參閱設定主題消耗,以取得精簡工作分配的資訊。

chlimage_1-109

當解除安裝架構選取叢集以執行工作,且叢集由多個執行處理組成時,Sling Distribution會決定叢集中的哪個執行處理執行工作。

工作承載 job-payloads

「解除安裝」架構支援將工作與存放庫中的資源相關聯的工作裝載。 當建立工作以處理資源,且工作解除安裝到其他電腦時,工作裝載很有用。

建立工作後,裝載保證只會位於建立工作的執行個體上。 解除安裝工作時,復寫代理程式會確保在最終耗用工作的執行個體上建立裝載。 當作業執行完成時,反向復寫會將裝載複製回建立作業的執行個體。

管理拓撲 administering-topologies

拓撲是參與解除安裝的鬆散耦合Experience Manager叢集。 叢集由一或多個Experience Manager伺服器執行處理組成(單一執行處理被視為叢集)。

每個Experience Manager執行個體都會執行下列解除安裝相關服務:

  • 探索服務:傳送要求給拓撲聯結器以加入拓撲。
  • 拓撲聯結器:接收加入要求,並接受或拒絕每個要求。

拓撲的所有成員的「探索服務」會指向其中一個成員上的「拓撲聯結器」。 在接下來的章節中,此成員稱為根成員。

chlimage_1-110

拓朴中的每個叢集都包含被識別為領導的執行個體。 叢集導線代表叢集的其他成員與拓撲互動。 當導線離開叢集時,會自動為叢集選擇新的導線。

檢視拓撲 viewing-the-topology

使用「拓朴瀏覽器」來探索Experience Manager執行處理所參與的拓朴的狀態。 「拓朴瀏覽器」會顯示拓朴的叢集和執行處理。

對於每個叢集,您會看到一個叢整合員清單,指出每個成員加入叢集的順序,以及哪個成員是前導。 Current屬性指出您目前管理的執行處理。

對於叢集中的每個執行處理,您可以看到幾個拓撲相關特性:

  • 執行個體工作消費者的允許主題清單。
  • 用來連線拓朴的開放端點。
  • 為其註冊執行處理以進行解除安裝的工作主題。
  • 執行處理所處理的工作主題。
  1. 使用Touch UI,按一下「工具」標籤。 (http://localhost:4502/tools.html)

  2. 在「Granite操作」區域中,按一下「解除安裝瀏覽器」。

  3. 在導覽面板中,按一下「拓朴瀏覽器」。

    參與拓朴的叢集隨即顯示。

    chlimage_1-111

  4. 按一下叢集,即可檢視叢集中的執行處理清單,以及其ID、目前狀態和導線狀態。

  5. 按一下執行個體ID可檢視更多詳細屬性。

您也可以使用「Web主控台」來檢視拓撲資訊。 主控台提供拓朴叢集的進一步資訊:

  • 哪個執行個體是本機執行個體。
  • 此執行個體用來連線到拓撲的拓撲聯結器服務(傳出),以及連線到此執行個體的服務(傳入)。
  • 變更拓撲和執行個體屬性的歷史記錄。

請使用下列步驟來開啟「Web主控台」的「拓朴管理」頁面:

  1. 在瀏覽器中開啟Web主控台。 (http://localhost:4502/system/console)

  2. 按一下「主要」>「拓朴管理」。

    chlimage_1-112

設定拓朴成員資格 configuring-topology-membership

Apache Sling Resource-Based Discovery Service會在每個執行個體上執行,以控制Experience Manager執行個體與拓撲互動的方式。

探索服務會定期傳送POST要求(心率)給拓撲聯結器服務,以建立與維護與拓撲的連線。 Topology Connector服務會維護允許加入拓撲的IP位址或主機名稱允許清單:

  • 若要將執行個體聯結至拓撲,請指定根成員的Topology Connector服務的URL。
  • 若要啟用執行個體以加入拓撲,請將執行個體新增至根成員的拓撲聯結器服務的允許清單。

使用Web主控台或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
拓撲聯結器允許清單
topologyConnectWhitelist
本機Topology Connector服務允許在拓撲中的IP位址或主機名稱清單。

localhost

127.0.0.1

存放庫描述項名稱
leaderElectionRepositoryDescriptor
<沒有值>

使用以下程式將CQ執行處理連線到拓朴的根成員。 程式會將執行個體指向根拓撲成員的拓撲聯結器URL。 對拓撲的所有成員執行此程式。

  1. 在瀏覽器中開啟Web主控台。 (http://localhost:4502/system/console)
  2. 按一下「主要」>「拓朴管理」。
  3. 按一下設定探索服務。
  4. 將專案新增至Topology Connector URLs屬性,並指定根拓撲成員的Topology Connector服務的URL。 URL的格式為https://rootservername:4502/libs/sling/topology/connector。

對拓朴的根成員執行下列程式。 此程式會將其他拓撲成員的名稱新增至其[探索服務]允許清單。

  1. 在瀏覽器中開啟Web主控台。 (http://localhost:4502/system/console)
  2. 按一下「主要」>「拓朴管理」。
  3. 按一下設定探索服務。
  4. 針對拓撲的每個成員,將專案新增至拓撲聯結器允許清單屬性,並指定拓撲成員的主機名稱或IP位址。

設定主題使用量 configuring-topic-consumption

使用解除安裝瀏覽器來設定拓撲中Experience Manager執行個體的主題使用量。 您可以針對每個執行處理指定其使用的主題。 例如,若要設定拓朴,使只有一個執行處理使用特定型別的主題,請停用所有執行處理上的主題,但有一個執行處理除外。

工作會分散在使用循環配置邏輯啟用相關主題的執行個體之間。

  1. 使用Touch UI,按一下「工具」標籤。 (http://localhost:4502/tools.html)

  2. 在「Granite操作」區域中,按一下「解除安裝瀏覽器」。

  3. 在導覽面板中,按一下「解除安裝瀏覽器」。

    解除安裝主題和可使用主題的伺服器執行個體隨即顯示。

    chlimage_1-113

  4. 若要停用某個執行處理的主題使用,請在主題名稱下方按一下執行處理旁的停用。

  5. 若要設定執行處理的所有主題使用量,請按一下任何主題下方的執行處理識別碼。

    chlimage_1-114

  6. 按一下主題旁邊的下列按鈕之一,設定執行處理的使用行為,然後按一下儲存:

    • 已啟用:此執行處理會使用此主題的工作。
    • 已停用:此執行個體不會使用此主題的工作。
    • 獨佔:此執行處理只會使用此主題的工作。

    注意: ​當您為主題選取「獨佔」時,所有其他主題會自動設定為「已停用」。

已安裝的工作消費者 installed-job-consumers

Experience Manager中安裝了數個JobConsumer實作。 這些JobConsumers註冊的主題會顯示在「解除安裝瀏覽器」中。 出現的其他主題是自訂「工作消費者」已註冊的主題。 下表說明預設的JobConsumers。

工作主題
服務PID
說明
/
org.apache.sling.event.impl.jobs.deprecated.EventAdminBridge
隨Apache Sling安裝。 處理OSGi事件管理員產生的工作,以便回溯相容性。
com/day/cq/replication/job/&amp;ast;
com.day.cq.replication.impl.AgentManagerImpl
復製作業裝載的復寫代理程式。

停用和啟用執行處理的主題 disabling-and-enabling-topics-for-an-instance

Apache Sling作業取用者管理員服務提供主題允許清單和封鎖清單屬性。 設定這些屬性,以啟用或停用處理Experience Manager執行個體上的特定主題。

注意: ​如果執行個體屬於拓撲,您也可以在拓撲中的任何電腦上使用解除安裝瀏覽器來啟用或停用主題。

建立已啟用主題清單的邏輯會先允許清單中的所有主題,然後移除封鎖清單上的主題。 預設會啟用所有主題(允許清單值為*)且不會停用主題(封鎖清單沒有值)。

使用Web主控台或sling:OsgiConfig節點來設定下列屬性。 對於sling:OsgiConfig節點,工作消費者管理員服務的PID是org.apache.sling.event.impl.jobs.JobConsumerManager。

Web主控台中的屬性名稱
OSGi ID
說明
主題允許清單
job.consumermanager.whitelist
本機JobManager服務處理的主題清單。 預設值&amp;ast;會傳送所有主題至已註冊的TopicConsumer服務。
主題封鎖清單
job.consumermanager.blacklist
本機JobManager服務未處理的主題清單。

建立解除安裝的復寫代理程式 creating-replication-agents-for-offloading

解除安裝架構使用復寫來在作者和工作者之間傳輸資源。 當執行個體加入拓撲時,解除安裝架構會自動建立復寫代理程式。 代理程式是以預設值建立的。 手動變更代理程式用於驗證的密碼。

CAUTION
自動產生的復寫代理的已知問題需要您手動建立新的復寫代理。

建立復寫代理程式,以便在執行個體之間傳輸工作裝載以進行解除安裝。 下圖顯示從作者解除安裝至背景工作執行個體所需的代理程式。 作者的Sling ID為1,而背景工作例項的Sling ID為2:

chlimage_1-115

此設定需要下列三個代理程式:

  1. 製作執行個體上複製到背景工作執行個體的傳出代理程式。
  2. 作者執行個體上從背景工作執行個體上提取的反向代理程式。
  3. 背景工作執行個體上的寄件匣代理程式。

此復寫配置類似於製作與發佈執行個體之間使用的復寫配置。 然而,針對解除安裝情況,所有相關的執行個體都是編寫執行個體。

NOTE
解除安裝架構會使用拓撲來取得解除安裝執行個體的IP位址。 然後,架構會根據這些IP位址自動建立復寫代理。 如果解除安裝執行個體的IP位址稍後變更,則會在執行個體重新啟動後,自動將變更傳播到拓朴上。 不過,解除安裝架構不會自動更新復寫代理程式以反映新的IP位址。 為避免這種情況,請對拓撲中的所有執行個體使用固定IP位址。

命名要解除安裝的復寫代理程式 naming-the-replication-agents-for-offloading

請為復寫代理程式的​ Name ​屬性使用特定格式,讓解除安裝架構自動針對特定背景工作執行個體使用正確的代理程式。

為作者執行個體上的傳出代理程式命名:

offloading_<slingid>,其中<slingid>是背景工作執行個體的Sling ID。

範例: offloading_f5c8494a-4220-49b8-b079-360a72f71559

在製作執行個體上命名反向代理程式:

offloading_reverse_<slingid>,其中<slingid>是背景工作執行個體的Sling ID。

範例: offloading_reverse_f5c8494a-4220-49b8-b079-360a72f71559

為背景工作執行個體上的寄件匣命名:

offloading_outbox

建立連出代理程式 creating-the-outgoing-agent

  1. 在作者上建立​ 復寫代理。 (請參閱復寫代理程式🔗的檔案)。 指定任何​ 標題名稱 ​必須遵循命名慣例。

  2. 使用下列屬性建立代理程式:

    table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 6-row-2
    屬性
    設定>序列化型別 預設
    傳輸>傳輸URI https://<ip of target instance><port>/bin/receive?sling:authRequestLogin=1
    傳輸>傳輸使用者 目標執行個體上的復寫使用者
    傳輸>傳輸密碼 目標執行個體上的復寫使用者密碼
    延伸> HTTP方法 POST
    觸發器>忽略預設值

建立反向代理程式 creating-the-reverse-agent

  1. 在作者上建立​ 反向復寫代理。 (請參閱復寫代理程式🔗的檔案。) 指定任何​ 標題名稱 ​必須遵循命名慣例。

  2. 使用下列屬性建立代理程式:

    table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2
    屬性
    設定>序列化型別 預設
    傳輸>傳輸URI https://<ip of target instance><port>/bin/receive?sling:authRequestLogin=1
    傳輸>傳輸使用者 目標執行個體上的復寫使用者
    傳輸>傳輸密碼 目標執行個體上的復寫使用者密碼
    延伸> HTTP方法 GET

建立寄件匣代理程式 creating-the-outbox-agent

  1. 在背景工作執行個體上建立​ 復寫代理程式。 (請參閱復寫代理程式🔗的檔案。) 指定任何​ 標題名稱 ​必須是offloading_outbox

  2. 使用下列屬性建立代理程式。

    table 0-row-2 1-row-2 2-row-2 3-row-2
    屬性
    設定>序列化型別 預設
    傳輸>傳輸URI repo://var/replication/outbox
    觸發器>忽略預設值

尋找Sling ID finding-the-sling-id

使用下列其中一種方法取得Experience Manager例項的Sling ID:

延伸閱讀 further-reading

除了此頁面上顯示的詳細資訊外,您也可以閱讀下列內容:

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