我有一个在 TimerTrigger 上运行的 Azure Web 作业,用于将一些消息放在服务总线队列上。我已经在 2 个不同的区域上部署了这个 Web 作业,以便在一个区域出现故障的情况下实现高可用性。根据https://github.com/Azure/azure-webjobs-sdk-extensions/wiki/TimerTrigger,我可以看到分布式锁机制运行良好,计时器一次只在一个区域执行,所以有没有重复的请求通过。
但是,两个区域中的 Web 作业都使用相同的公共存储帐户,并且存储帐户仅部署到一个区域。我不能使用 2 个单独的存储帐户,因为那样我就失去了分布式锁定功能。我知道 Azure 为我的存储帐户提供异地冗余存储,因此数据被复制到辅助区域。
我的问题是 - 如果某个区域(特别是存储帐户的主要区域)发生灾难,有没有办法让 Web 作业自动故障转移到辅助端点?现在,我将“AzureWebJobsStorage”应用程序设置指定为存储帐户的共享访问密钥之一。
感谢任何指针!