.net - 与某些命令一起使用的云服务的自动缩放
问题描述
我在 Azure 上有自定义工作人员作为云服务(经典)。我已安排在工作时间 (5) 和其他时间 (20) 自动缩放实例数量。
有时当一些工作人员正在使用命令但这是工作时间的开始时会出现问题,因此实例被“杀死”(缩减)。结果命令没有完成。命令是来自 Azure 队列的消息。所以基本上消息会返回到队列中。但是另一个工人需要一些时间才能再次获取该消息。
所以问题是 - 只有在他们完成消息/命令后,是否有一种自动扩展工作人员的方法?
解决方案
请参阅如何停止 WebRole/WorkerRole 的单个实例/VM 中的答案。
简而言之,您可以使用删除角色实例 API ( https://docs.microsoft.com/en-us/previous-versions/azure/reference/dn469418(v=azure.100) ) 来指定您想要的角色实例去关机。但是,这不适用于自动缩放,您必须编写一些代码来确定要关闭哪些实例。
通常,更好的解决方案是确保工作角色实例正在执行的工作是幂等的并且可以轻松恢复。听起来您已经有了这种设计,但是它所花费的时间存在问题,在这种情况下,您可能有机会将每个“命令”分解为更小的工作单元,以便在处理该命令时可以保持进度稍后被新实例拾取。
推荐阅读
- android - 通过 USB OTG 从设备同步写入然后读取数据
- javascript - ag-grid Angular - 如何通过标记/HTML 自定义列
- mobx - 如何使用 mobx-state-tree 查看观察的变化
- angular - 错误:无法读取 null 的属性“控件”(FormGroup 内的 FormArray 在 FormGroup 内的 FormArray 内)
- android - FirebaseAuthFallbackService 内存泄漏
- python - Pandas 按位过滤在带括号和不带括号的情况下给出不同的结果
- google-apps-script - Google Apps.Script calendar.getEvents 的问题
- laravel - 函数 App\Http\Middleware\Locale::handle() 的参数太少 | 拉拉维尔 8
- reactjs - ReactJs - 组件之间存在父子关系的性能问题
- c++ - 为什么构建在 cominterfaces.tlh 中显示错误