具有 active active mode azure 的多区域架构

Multi region architecture with active active mode azure

我对在 azure 中实现多区域架构有些疑问,我 运行 我的应用程序目前在一个区域中,我将一些数据保存在 blob 存储中,其他数据保存在 PostgreSQL 数据库中。我想在不同地区复制我的整个架构,以接近其他客户。因此,我将使用流量管理器根据源区域路由流量,但在研究数据库和数据存储的副本时,我发现副本处于只读模式。那么如果想要有源/有源区域架构我应该怎么做呢?

使用任何关系数据库构建一个真正的 active-active 架构是很棘手的,因为正如您所指出的,所有副本都是 read-only。您可以采用以下几种途径:

  • 你能切换到 Cosmos DB 吗?这将提供一个真正的 active-active 架构。
  • 如果您必须坚持使用 Postgres,您仍然可以 运行 您的整个应用程序 active-active 但需要编写查询 cross-region。但是您仍然可以(如果您可以控制您的应用程序代码)使用本地读取。
  • 如果您愿意大量重写您的应用程序,同时仍然使用 SQL,您可以使用 cross-region 个副本和 UNION 视图构建一个 append-only 数据模型跨越它们(复杂的东西,我们目前正在为此构建一个示例架构,但需要更长的时间)。

您可以探索有关 Azure Mission-Critical 工作负载的一般指南 here. And there is a fully fledged reference implementation for active-active using Cosmos DB: https://github.com/Azure/Mission-Critical-Online