【问题标题】:Azure Web App drops request during swapAzure Web App 在交换期间丢弃请求
【发布时间】:2016-08-18 23:41:29
【问题描述】:

我喜欢在 Azure 中交换插槽的想法,但它似乎无法正常工作。

我有一个客户端应用程序正在将文件上传到服务器,每个文件都作为一个单独的请求。当我尝试服务器交换时,它会挂在其中一个文件上传上,并且该请求将失败。同样,如果我刷新生产槽的网页,它将挂起。这只发生了大约 30 秒,然后一切都很好,但这足以中断请求。

我在某处读到粘性插槽设置会导致这种情况,所以我禁用了这些设置,但它仍然会发生。

有什么想法吗?这是一个 nodeJs 网络应用程序。

谢谢你, 山姆

【问题讨论】:

    标签: node.js azure swap azure-deployment-slots


    【解决方案1】:

    由于可以将不同的插槽视为不同的应用程序。如果您的请求在 Web 应用程序交换时在生产槽上挂起,它应该会失败。我们可以找到原因:

    最后,曾经是 Production 并且现在是 Staging 的站点也需要应用一些设置,导致它重新启动。同样,这很好,因为它发生在临时站点中。

    您可以尝试使用 try catch 获取异常,记录失败的文件,并在您的站点交换完成后再次尝试上传此文件。

    有关站点交换的更多信息,请参阅https://github.com/projectkudu/kudu/wiki/Understanding-site-swapshttp://ruslany.net/2015/09/how-to-warm-up-azure-web-app-during-deployment-slots-swap/

    【讨论】:

    • 嗨。我有一个疑问,但我不能将其作为关于 SO 的问题提出。你能告诉我为什么不同地区的相同 Azure vm 成本不同吗?在我感兴趣的 vm (D1v2) 价格较低的地区(如美国中南部)运行有什么缺点?
    • 由于我对业务层不熟悉,但我认为可能是数据中心的建设和维护成本造成的,不同地区的服务是不一样的。同一种产品在不同的县有不同的价格是很常见的情况。而VM的价格,可以参考azure.microsoft.com/en-us/pricing/details/virtual-machines/…了解详情。
    • 谢谢。这意味着在性能和网络带宽等方面,它们是相同的。不是吗?
    • 这对我来说很有意义。在我看来,应该允许发送到生产环境的请求(现在变为暂存)在重新启动之前完成,但这只是我。我只需要按照你说的重试请求。没有“热身”时间仍然很酷。 :)
    • 对不起,如果这些是愚蠢的问题,我真的很想知道您是否有时间:是否会有例外记录?生产应用程序在重新启动时(切换到暂存后)不是终止了吗?那么这将如何触发异常呢?因此这些请求只是在处理过程中被丢弃?就像 Sam 说的,请求可以完成吗?我知道 StackOverflow 在他们的部署过程中,允许几秒钟的请求完成,所以没有任何内容被丢弃。插槽真的是立即交换还是有几秒钟的余地?谢谢
    猜你喜欢
    • 2021-10-27
    • 2021-12-29
    • 2016-05-13
    • 1970-01-01
    • 2016-10-05
    • 2013-12-20
    • 1970-01-01
    • 2012-11-13
    • 2021-05-07
    相关资源
    最近更新 更多