将 AzureWebJobsStorage 用于 Web 作业计时器触发器时如何配置存储帐户的自动故障转移

问题描述

我有一个 Azure Web 作业,它在 TimerTrigger 上运行以将一些消息放入服务总线队列。我已在 2 个不同的区域部署了此 Web 作业,以在一个区域出现故障时实现高可用性。根据{{​​3}},我可以看到分布式锁机制运行良好,定时器一次只在一个区域执行,因此没有重复的请求通过。

但是,这两个区域的 Web Job 使用相同的公共存储帐户,并且存储帐户仅部署到一个区域。我不能使用 2 个单独的存储帐户,因为那样我就失去了分布式锁功能。我知道 Azure 为我的存储帐户提供异地冗余存储,因此数据会复制到次要区域。

我的问题是 - 如果一个区域(特别是存储帐户的主要区域)发生灾难,是否有办法让 Web 作业自动故障转移到辅助端点?现在,我将“AzureWebJobsStorage”应用程序设置指定为存储帐户的共享访问密钥之一。

感谢任何指点!

解决方法

我不是存储 SDK 方面的专家,但我链接了两个文档,可以帮助您了解如何使您的应用高度可用。

由于地理冗余存储的警告是它在辅助服务器上是只读的,除非您提出请求,否则我确实找到了 GeoRedundantSecondaryUriBlobClientOptions 属性部分,它将使用辅助地址作为重试策略的一部分。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...