首页 > 解决方案 > 与某些命令一起使用的云服务的自动缩放

问题描述

我在 Azure 上有自定义工作人员作为云服务(经典)。我已安排在工作时间 (5) 和其他时间 (20) 自动缩放实例数量。

有时当一些工作人员正在使用命令但这是工作时间的开始时会出现问题,因此实例被“杀死”(缩减)。结果命令没有完成。命令是来自 Azure 队列的消息。所以基本上消息会返回到队列中。但是另一个工人需要一些时间才能再次获取该消息。

所以问题是 - 只有在他们完成消息/命令后,是否有一种自动扩展工作人员的方法?

标签: .netazureautoscalingazure-cloud-servicesworker

解决方案


请参阅如何停止 WebRole/WorkerRole 的单个实例/VM 中的答案

简而言之,您可以使用删除角色实例 API ( https://docs.microsoft.com/en-us/previous-versions/azure/reference/dn469418(v=azure.100) ) 来指定您想要的角色实例去关机。但是,这不适用于自动缩放,您必须编写一些代码来确定要关闭哪些实例。

通常,更好的解决方案是确保工作角色实例正在执行的工作是幂等的并且可以轻松恢复。听起来您已经有了这种设计,但是它所花费的时间存在问题,在这种情况下,您可能有机会将每个“命令”分解为更小的工作单元,以便在处理该命令时可以保持进度稍后被新实例拾取。


推荐阅读