gpt4 book ai didi

Azure Web 作业 - 同一 Web 作业中的多个函数和/或同一 Web 应用程序中的多个 Web 作业对性能有何影响?

转载 作者:行者123 更新时间:2023-12-03 16:56:19 31 4
gpt4 key购买 nike

通过 Web 作业部署新功能有 3 种方法:

  1. 创建一个新的 Web 应用,并部署一个包含该函数的 Web 作业。
  2. 向现有 Web 作业添加一项新函数(这样您现在在一个 Web 作业中就拥有了多个函数)。
  3. 向网络应用添加新的网络作业(因此现在您在同一个网络应用中拥有多个网络作业)。

同一 Web 应用程序上的所有 Web 作业和 Web 作业功能都托管在同一虚拟机上,因此这三者的实质性影响可能是相同的。但我想知道有什么区别。

有什么指导可以帮助我决定如何向我的云解决方案添加新的 Web 作业功能?

  1. 带有网络作业的新网络应用
  2. 或现有网络应用中的新网络作业与其他网络作业
  3. 或现有网络作业中的新函数以及其他函数。

我对这 3 个选项的工作原理、指导、最佳实践和性能影响感兴趣。

最佳答案

这是一个很难回答的问题,我会尽力为您提供一些线索。您应该记住以下几点:

  • 性能:如果将每个任务放入同一个作业中,则每次调用其中一个函数时,作业主机都会创建一个新线程。同一进程中太多线程损害性能。我的选择是限制同一​​进程中运行的线程数量。如果你用谷歌搜索“多线程与多处理”,你会找到一些关于这个问题的很好的答案。无论如何,没有通用指南,您应该使用分析工具来帮助您确定适合您情况的最佳解决方案。

  • 崩溃:假设您在同一个作业中有 2 个职能。如果一个函数崩溃,可能会导致整个作业崩溃。因此,您可能需要创建单独的作业来隔离需要具有弹性并始终运行的功能。

  • 配置:同一网络应用程序中的多个作业可以共享配置(应用程序设置)。根据您管理配置的方式(从门户或使用 app.config),您可能需要为不具有相同配置的作业创建单独的 Web 应用程序。

  • 部署:当您在 Web 应用程序中部署 Web 作业时,将会导致 Web 应用程序重新启动。如果您有一个网站或其他作业必须保持运行,您可能需要创建一个单独的 Web 应用程序,以便特定组件的新部署不会影响其他组件的可用性。

  • “扩展”:Webjobs 将在您的应用服务的所有实例上运行。您可以将特定作业或特定函数指定为单例。这也是你应该牢记的。

否则您可能会对 Azure Functions 感兴趣。它使用自动扩展的动态应用程序服务计划,您只需在功能运行时付费。每个功能都是独立的,因此您完全不必担心:-)

关于Azure Web 作业 - 同一 Web 作业中的多个函数和/或同一 Web 应用程序中的多个 Web 作业对性能有何影响?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40273484/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com