java - 增加/减少 Azure 中辅助角色实例的数量

标签 java azure

我可以使用 Azure4Java 包中的 ServiceManagementRest 类直接从 Java 增加辅助角色 (WR) 实例的数量。请参阅教程 Azure Management through Java .

我的问题是,当我减少WR实例数量时,我可以决定关闭哪些WR实例吗?因为,对于云弹性想法,我会停止处于 IDLE 状态的实例,而不是处于 EXECUTING 状态的实例。

问候, 法布里齐奥

最佳答案

您无法选择要关闭的实例;您只需更改实例计数,结构 Controller 就会负责关闭实例。原因之一是由于故障域和 SLA:如果您在 2 个故障域中有 4 个实例,并且关闭故障域 0 中的两个实例,那么您现在在故障域 1 中有 2 个实例。因此,现在您有两个实例也许同一机架中的实例,并且该机架离线。现在,您在一段时间内运行的实例为零。

处理实例关闭是一种常见情况,解决此问题的典型模式是利用队列来缓冲工作负载,然后让辅助角色实例使用这些队列中的工作项。如果您在实例工作完成之前关闭该实例,该项目最终会重新出现在队列中,并且另一个实例可以完成该工作。

这种模式需要幂等性,这有时是一个挑战。通过最近对 Windows Azure 队列的更新,您现在可以修改队列消息,这使这变得更加容易 - 您可以在完成工作项处理的各个阶段时向队列消息添加信息。然后,如果您的实例在工作完成之前关闭,则下一个拿起它的工作人员可以从“开始”以外的点恢复。

还有一个细节:您应该能够处理 Stopping 事件,并告诉“正在停止的实例”停止从队列中读取(也许设置一个标志)。然后,重写 OnStop(),并等待进程内操作完成后再返回。如果仍在进行的操作需要超过 5 分钟,您可能需要发挥创意......

关于java - 增加/减少 Azure 中辅助角色实例的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8355167/

相关文章:

java - 在类加载期间 memcpy 时 JVM 崩溃

java - 如何简化多个字段上空安全比较器的创建?

node.js - Azure YAML 部署失败并显示 "Error: Failed to deploy web package to App Service. Conflict (CODE: 409)"

Azure App Insights - 将自定义属性添加到依赖项调用

azure - 我的 Azure 函数间歇性无法读取连接字符串

java - 检索 Hibernate 代理的 ID 何时会初始化代理?

java - 当我在 Webdriver 中使用 Java 运行脚本时,我收到错误消息 "No alert is active"

java - 解析 iso8583 消息时出现问题

azure - 如何读取Azure存储 key

azure 管道条件始终返回 false