卸载在拓扑中分散了处理任务,它们是Experience Manager实例。 通过卸载,您可以使用特定的Experience Manager实例执行特定类型的处理。 专用处理使您能够最大限度地利用可用的服务器资源。
卸载基于Apache Sling Discovery和Sling JobManager功能。 要使用卸载,可向拓扑中添加Experience Manager群集并标识群集处理的作业主题。 群集由一个或多个Experience Manager实例组成,因此单个实例被视为群集。
有关将实例添加到拓扑的信息,请参阅管理拓扑。
Sling JobManager和JobConsumer支持创建在拓扑中处理的作业:
当JobManager创建作业时,卸载框架会选择拓扑中的Experience Manager群集来执行该作业:
有关优化作业分配的信息,请参阅配置主题消耗。
当卸载框架选择群集以执行作业,且群集由多个实例组成时,Sling Distribution将确定群集中的哪个实例执行该作业。
卸载框架支持将作业与存储库中的资源关联的作业负载。 当为处理资源创建作业并且作业被卸载到另一台计算机时,作业负载很有用。
在创建作业时,仅保证有效负荷位于创建作业的实例上。 卸载作业时,复制代理确保在最终读取作业的实例上创建负载。 当作业执行完成时,反向复制会导致负载被复制回创建作业的实例。
拓扑是参与卸载的松耦合Experience Manager群集。 群集由一个或多个Experience Manager服务器实例(单个实例被视为群集)组成。
每个Experience Manager实例都运行以下卸载相关服务:
拓扑的所有成员的发现服务指向其中一个成员上的拓扑连接器。 在后面几节中,此成员称为根成员。
拓扑中的每个群集都包含一个被识别为引线的实例。 群集领导者代表群集的其他成员与拓扑交互。 当引线离开群集时,会自动选择群集的新引线。
使用拓扑浏览器来浏览Experience Manager实例所参与的拓扑的状态。 拓扑浏览器显示拓扑的群集和实例。
对于每个群集,您会看到一个群集成员列表,它指示每个成员加入群集的顺序以及哪个成员是Leader。 “当前”属性指示您当前管理的实例。
对于群集中的每个实例,您可以看到几个与拓扑相关的属性:
使用触控UI,单击工具选项卡。 (http://localhost:4502/tools.html)
在“Granite操作”区域,单击“卸载浏览器”。
在导航面板中,单击拓扑浏览器。
将显示参与拓扑的群集。
单击群集可查看群集中实例的列表及其ID、当前状态和领导者状态。
单击实例ID以查看更详细的属性。
您还可以使用Web控制台来视图拓扑信息。 控制台提供了有关拓扑群集的更多信息:
请按照以下过程打开Web控制台的“拓扑管理”页:
在浏览器中打开Web控制台。 (http://localhost:4502/system/console)
单击“主”>“拓扑管理”。
Apache Sling基于资源的发现服务在每个实例上运行,以控制Experience Manager实例与拓扑交互的方式。
Discovery服务会定期向拓扑连接器服务发送POST请求(心跳),以建立和维护与拓扑的连接。 拓扑连接器服务保留允许加入拓扑的IP地址或主机名允许列表:
使用Web控制台或sling:OsgiConfig节点配置org.apache.sling.discovery.impt.Config服务的以下属性:
属性名称 | OSGi名称 | 描述 | 默认值 |
---|---|---|---|
心跳超时(秒) | heartbeatTimeout | 在目标实例被认为不可用之前等待心跳响应的时间(以秒为单位)。 | 20 |
心跳间隔(秒) | heartbeatInterval | 心率之间的秒数。 | 15 |
最小事件延迟(秒) | minEventDelay | 当拓扑发生更改时,将状态从TOPOLOGY_CHANGING延迟到TOPOLOGY_CHANGED的时间。 当状态为TOPOLOGY_CHANGING时发生的每次更改都会将延迟增加此时间量。 这种延迟防止听众被事件淹没。 要不使用延迟,请指定0或负数。 |
3 |
拓扑连接器URL | topologyConnectorUrl | 用于发送心跳消息的拓扑连接器服务的URL。 | http://localhost:4502/libs/sling/topology/connector |
拓扑连接器允许列表 | topologyConnectorWhitelist | 列表本地拓扑连接器服务在拓扑中允许的IP地址或主机名。 | lochhost 127.0.0.1 |
存储库描述符名称 | leaderElectionRepositoryDescriptor | <无值> |
请按照以下过程将CQ实例连接到拓扑的根成员。 此过程将实例指向根拓扑成员的拓扑连接器URL。 对拓扑的所有成员执行此过程。
对拓扑的根成员执行以下过程。 该过程将其他拓扑成员的名称添加到其“发现服务”允许列表。
使用卸载浏览器为拓扑中的Experience Manager实例配置主题消耗。 对于每个实例,您可以指定它使用的主题。 例如,要配置拓扑以便只有一个实例读取特定类型的主题,请禁用除一个实例外的所有实例上的主题。
作业是使用循环逻辑启用关联主题的分配数量实例。
使用触控UI,单击工具选项卡。 (http://localhost:4502/tools.html)
在“Granite操作”区域,单击“卸载浏览器”。
在导航面板中,单击“卸载浏览器”。
将显示卸载主题以及可使用主题的服务器实例。
要禁用实例主题的使用,请在topc名称下方单击实例旁边的禁用。
要配置实例的所有主题消耗,请单击任意主题下的实例标识符。
单击主题旁边的以下按钮之一以配置实例的使用行为,然后单击保存:
注意: 当您为某个主题选择“独占”时,所有其他主题将自动设置为“已禁用”。
JobConsumer实现随Experience Manager一起安装。 注册这些JobConsumer的主题显示在卸载浏览器中。 显示的其他主题是自定义JobConsumer已注册的主题。 下表描述了默认的JobConsumer。
作业主题 | 服务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服务提供主题允许列表和阻止列表属性。 配置这些属性以启用或禁用对Experience Manager实例上特定主题的处理。
注意: 如果实例属于拓扑,您还可以在拓扑中的任何计算机上使用卸载浏览器来启用或禁用主题。
创建已启用主题列表的逻辑首先允许允许列表中的所有主题,然后删除阻止列表中的主题。默认情况下,所有主题都处于启用状态(允许列表值为*
)且不禁用任何主题(阻止列表没有值)。
使用Web控制台或sling:OsgiConfig
节点配置以下属性。 对于sling:OsgiConfig
节点,作业消费者管理器服务的PID为org.apache.sling.事件.impl.jobs.JobConsumerManager。
Web控制台中的属性名称 | OSGi ID | 描述 |
---|---|---|
主题白名单 | job.consumermanager.whitelist | 本地JobManager服务处理的主题列表。 &ast;的默认值使所有主题都发送到已注册的TopicConsumer服务。 |
主题黑名单 | job.consumermanager.blacklist | 本地JobManager服务未处理的主题列表。 |
卸载框架使用复制在作者和工作者之间传输资源。 卸载框架在实例加入拓扑时自动创建复制代理。 代理是使用默认值创建的。 您必须手动更改代理用于身份验证的密码。
自动生成的复制代理存在一个已知问题,需要您手动创建新的复制代理。 在创建要卸载的代理之前,请按照使用自动生成的复制代理时遇到的问题中的步骤操作。
创建在实例之间传输作业负载以进行卸载的复制代理。 下图显示了从作者卸载到工作实例所需的代理。 作者的Sling ID为1,而工作实例的Sling ID为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
在worker实例上命名输出框:
offloading_outbox
创建作者的复制代理。 (请参见有关复制代理的文档)。 指定任何Title。 名称必须遵循命名约定。
使用以下属性创建代理:
属性 | 值 |
---|---|
“设置”>“序列化类型” | 默认 |
传输>传输URI | https://<ip of target instance> :<port> /bin/receive?sling:authRequestLogin=1 |
传输>传输用户 | 目标实例上的复制用户 |
传输>传输密码 | 目标实例上的复制用户密码 |
“扩展”>“HTTP方法” | POST |
“触发器”>“忽略默认值” | True |
创建作者的反向复制代理。 (有关复制代理](/docs/experience-manager-64/deploying/configuring/replication.html?lang=zh-Hans),请参阅[文档。) 指定任何Title。 名称必须遵循命名约定。
使用以下属性创建代理:
属性 | 值 |
---|---|
“设置”>“序列化类型” | 默认 |
传输>传输URI | https://<ip of target instance> :<port> /bin/receive?sling:authRequestLogin=1 |
传输>传输用户 | 目标实例上的复制用户 |
传输>传输密码 | 目标实例上的复制用户密码 |
“扩展”>“HTTP方法” | GET |
在worker实例上创建复制代理。 (有关复制代理](/docs/experience-manager-64/deploying/configuring/replication.html?lang=zh-Hans),请参阅[文档。) 指定任何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作业。 然后,配置拓扑,以便将作业卸载到专用Worker。
当与工作流卸载一起使用时,不应使工作流为临时工作流。 例如,在用于资产卸载时,DAM更新资产工作流不得为临时工作流。 要在工作流中设置/取消设置临时标志,请参阅临时工作流。
以下过程为卸载拓扑假定以下特征:
在每个Experience Manager实例上,配置Discovery服务,使其指向根Tomprications Connector。 (请参阅配置拓扑成员关系。)
配置根地形连接器,使连接实例位于允许列表上。
打开卸载浏览器,并禁用用户与之交互以上传或更改DAM资产的实例上的com/adobe/granite/workflow/offloading
主题。
在用户与之交互以上传或更改DAM资产的每个实例上,配置工作流启动器以使用DAM更新资产卸载工作流:
在执行DAM资产后台处理的实例中,禁用执行DAM更新资产工作流的工作流启动程序。
除了本页中介绍的详细信息之外,您还可以阅读以下内容: