在Azure Service Fabric

时间:2017-01-26 14:49:38

标签: azure azure-sql-database azure-service-fabric failover

我公司的应用程序今天早上遇到数据库连接问题导致我不得不故障转移到我们的辅助数据库。在我们的Azure应用服务中,这是更改配置中连接字符串的一个简单步骤,但是我找不到一种简单的方法来更改我们的Service Fabric服务上的这些设置而无需重新部署。

我正在考虑允许在运行时将这些服务故障转移到辅助数据库的选项,但不知道“最佳实践”是什么。我有几个选择:

  1. 我可以为我管理的数据库服务器创建一个dns条目,然后在我需要进行故障转移时将其切换到新的服务器名称。

  2. 我可以使用某种休息api来调用我的应用服务,无论是否要转到辅助数据库。

  3. 还有其他想法吗?我想尽可能无缝地故障转移到辅助服务器,因此可以快速完成。

2 个答案:

答案 0 :(得分:1)

您是否考虑过将主数据库连接字符串和辅助数据库连接字符串放入应用程序的配置中并编写一些代码,以便在检测到问题时自动切换它们?您提出的两个选项都会让人在路径中,这意味着您的用户将会遇到停机时间,直到人类解决问题(可能是人在睡觉,度假,休假和睡着)。

在Service Fabric中,应用程序(和系统)升级始终为rolling upgrades。滚动升级具有防止全球中断的优势。例如,假设您在某些时候使用错误的连接字符串更新了配置。全局配置更改可能既快速又简单,但现在您有全局中断和一些不满客户。滚动升级会在第一个升级域中捕获错误然后回滚,因此只有一小部分应用程序会受到影响。

您可以执行仅配置滚动升级。您可以在此处对config package进行更改,然后创建differential upgrade package,以便只更改配置更改,并且不必重新启动服务进程。

答案 1 :(得分:0)

在这里发布我的问题的更新。 SQL Azure现在具有自动故障转移组。这被描述为here