我们正在使用从Azure服务总线消息队列获取消息并对其进行处理的Azure服务结构(无状态服务)。任务通常需要5分钟到5小时。服务结构和缩放集群中的长时间运行任务在
当它忙于我们想要扩展服务器,并且当它变得安静时,我们又想缩回来。
我们如何在不中断长时间运行的任务的情况下进行扩展?有没有一种方法可以告诉Service Fabric哪个服务器可以自由扩展?
我们正在使用从Azure服务总线消息队列获取消息并对其进行处理的Azure服务结构(无状态服务)。任务通常需要5分钟到5小时。服务结构和缩放集群中的长时间运行任务在
当它忙于我们想要扩展服务器,并且当它变得安静时,我们又想缩回来。
我们如何在不中断长时间运行的任务的情况下进行扩展?有没有一种方法可以告诉Service Fabric哪个服务器可以自由扩展?
与 EventFlow整合您的SF服务。例如,使它发送日志到应用洞察
当正在处理你的任务,发一些日志中,这将表明, 它在进步
配置custom metric天青监视器只有在情况下缩放在表明机器 有正在进行的任务
权衡这里是等待所有事件菲尼什缺少日志直到可能发生规模扩张。
这里如何是这需要一个比特编码的另一种方法 - Automate manual scaling
开发另一项服务,作为SF应用程序的一部分或VM扩展。这里的重点是使服务在集群中的所有节点上运行,并跟踪任务执行的状态。
有明确的步骤,如何一个可以手动从集群中排除SF节点 -
运行禁止-ServiceFabricNode意图“的removeNode”禁用你要删除的节点(最高实例在那个节点类型中)。
实施一项新的服务缩放逻辑来监视其节点与他们的任务完成,赋闲缩放他们使用在前面的步骤中所描述的指令。
希望它是有道理的。
非常感谢@ tank104在阐述我的答案方面的帮助!
这样做 - 但这意味着我只能在所有事件完成时缩减 - 因为我无法知道哪个节点正在发送或不发送事件缩小? – tank104
真正应该是SF本身的功能。就像Cloud Services可以扩展/扩展一样。 –
@ tank104 - 是的,当宝贵的任务运行时,你不会让你的节点关闭,但是你必须等待所有事件完成。我有了另一个想法,我很快就会更新答案。 –
据我所知,SF不会自动扩展,您必须通过添加更多虚拟机来更新群集以扩展。 –
很确定你可以通过虚拟机的比例设置吗? – tank104
这就是我的意思。我只是不确定会有什么东西会根据服务的状态在VM上添加/删除虚拟机。说,如果你有一个无国界的服务OOTB。 –