【问题标题】:Enterprise Autoscale Application Block (WASABi) <scale> up by a variable amount企业自动缩放应用程序块 (WASABi) <scale> 增加可变数量
【发布时间】:2016-02-21 03:47:54
【问题描述】:

我正在查看 WASABi 文档,我对这个库的某个特定方面感到困惑。

我需要创建一个自定义反应规则。比如说,这条规则每分钟运行一次,这条规则的“缩放”动作应该是按“x”量放大。似乎我可以将“缩放”动作设置为特定数字(比如 1 或 2),但不能传入由我的自定义操作数计算的变量。

我知道我可以创建一个自定义操作数来检查我的条件,但我希望自定义操作数计算“缩放”操作应将目标 Worker Role 缩放多少,然后将此值传递给“缩放”操作.

有没有办法在 XML 之外定义这些规则来实现这一点?

任何帮助将不胜感激!

【问题讨论】:

  • 据我所知,动作可以按一个数字或按比例增加或减少计数。因此,如果您想要动态递增或递减,我认为您需要create a custom action。我认为您可以从IRuleEvaluationContext 中提取您需要的信息。
  • 另外,我只想指出 WASABi 现在已经很老了,并且没有包含在 EntLib 的最新版本中,因为 Azure 添加了很多内置的自动缩放功能。此外,我知道 azure SDK 版本往往会导致 WASABi 令人头疼,所以我不确定它与当前版本的工作情况如何。请注意——我已经有一段时间没有使用它了,所以你可能比我有更多的经验。
  • 我刚开始研究它,以前从未使用过它。希望它只适用于最新版本
  • 在我的自定义操作中,我如何实际放大?那是什么课程?
  • Autoscaling 块看起来已被淘汰。如果您是从头开始,那么您应该阅读这篇最近的帖子:azure.microsoft.com/en-us/documentation/articles/…

标签: enterprise-library wasabi


【解决方案1】:

动作可以按数字或比例增加或减少计数。因此,如果您想要动态递增或递减,我认为您需要create a custom action。我认为您可以从 IRuleEvaluationContext 中提取您需要的信息。

要更改实例计数,您需要更改部署配置。请参阅https://social.msdn.microsoft.com/forums/azure/en-US/dbbf14d1-fd40-4aa3-8c65-a2424702816b/few-question-regarding-changing-instance-count-programmatically?forum=windowsazuredevelopment&prof=required 进行一些讨论。

您应该能够使用适用于 .NET 的 Azure 管理库和 ComputeManagementClient 来执行此操作。比如:

using (ComputeManagementClient client = new ComputeManagementClient(credentials))
{
    var response = await client.Deployments.GetBySlotAsync(serviceName, slot);

    XDocument config = XDocument.Parse(response.Configuration);

    // Change the config

    StringBuilder builder = new StringBuilder();

    using (TextWriter writer = new StringWriter(builder))
    {
        config.Save(writer);
    }

    string newConfig = builder.ToString();

    await client.Deployments.BeginChangingConfigurationBySlotAsync(serviceName, slot, new DeploymentChangeConfigurationParameters(newConfig));
}

【讨论】:

  • 谢谢你! Enterprise Autoscale Block 似乎无法与最新版本的 SDK 配合使用,但这个信息的瑰宝,本质上让我推出了自己的扩展解决方案。值得称赞的是 Rany Levy,他提出了类似的建议!编辑:没意识到,你是兰迪·利维 :)
  • 当我自动缩放时,配置更改会导致所有实例重新启动。有没有办法防止这种重启发生(通过代码或通过将角色移动到单独的可用性集中的某种策略)?
  • 不确定。我确实读过一些关于使用暂存槽然后进行交换的内容。
猜你喜欢
  • 2013-04-23
  • 1970-01-01
  • 1970-01-01
  • 2021-09-23
  • 1970-01-01
  • 2012-04-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多