首页 > 解决方案 > 使用 AzureWebJobsStorage for Web Job Timer Triggers 时如何配置存储帐户的自动故障转移

问题描述

我有一个在 TimerTrigger 上运行的 Azure Web 作业,用于将一些消息放在服务总线队列上。我已经在 2 个不同的区域上部署了这个 Web 作业,以便在一个区域出现故障的情况下实现高可用性。根据https://github.com/Azure/azure-webjobs-sdk-extensions/wiki/TimerTrigger,我可以看到分布式锁机制运行良好,计时器一次只在一个区域执行,所以有没有重复的请求通过。

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

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

感谢任何指针!

标签: azure-webjobsazure-webjobssdkwebjobazure-webjobs-continuous

解决方案


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

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


推荐阅读