1

我在 C# 中开发了一个队列触发的 azure 函数。该函数在 AppService 计划上运行。我们想要实现自定义的自动横向扩展。我们计划在 CPU 百分比高于 60% 时将实例数增加 1

我的问题是:

  1. 将实例数增加到 60% 是否是个好主意?
  2. 我进行了研究,发现对于 blob 触发的 azure 函数,有一种机制可以防止两个实例选择相同的队列条目。C# Queue Triggered Azure Function 有相同的机制吗?
  3. 在我的函数代码中,我编写了 Thread.Sleep(3000) 在某些情况下使线程休眠。横向扩展时会导致任何问题吗?
  4. 在我的场景中进行扩展时,还有什么我应该记住的吗?

提前致谢。

4

1 回答 1

1

将实例数增加到 60% 是否是个好主意?

我们建议在扩展阈值和输入阈值之间选择足够的余量。例如,考虑以下更好的规则组合。

  • 当 CPU% >= 80 时,实例数增加 1
  • 当 CPU% <= 60 时将实例数减少 1

我进行了研究,发现对于 blob 触发的 azure 函数,有一种机制可以防止两个实例选择相同的队列条目。C# Queue Triggered Azure Function 的机制是否相同?

是的,不用担心这个。

在我的函数代码中,我编写了 Thread.Sleep(3000) 在某些情况下使线程休眠。横向扩展时会导致任何问题吗?

不。

在我的场景中进行扩展时,还有什么我应该记住的吗?

此应用服务计划下的所有 webapps、functionapps 都会消耗资源,您还可以考虑一些其他指标,例如内存使用情况。

于 2020-06-25T09:43:24.977 回答