【问题标题】:How does azure handles geo-replication under the hoodazure 如何在后台处理异地复制
【发布时间】:2017-04-26 15:19:44
【问题描述】:

我们有一个天蓝色的网络应用程序和一个数据库,我们想在世界各地复制。

因此,我们使用流量管理器将用户重定向到最近的托管 Web 应用程序,并通过 Web 应用程序中的位置设置,它知道应该访问哪个数据库。

现在,我的问题是,由于模式是 One database Writeable (Primary) 并且副本是只读的,我或 azure 在调用数据库时如何处理?

例如,如果我要从我的应用程序中向数据库添加一条记录,我不能使用最近的数据库连接字符串,我需要与主要的连接。

我应该处理这个吗?或者我会一直反对最近的,即使它是只读的,天蓝色会处理将其传输到主数据库的写入?

如果我是应该管理它的人,那么我应该处理 2 个连接字符串,一个用于主数据库可写,一个用于最近的可读数据库,我应该拆分我的服务,按写入/读取分类行动

在这种情况下,如果我有一个写入和读取的存储过程,我将如何处理?

【问题讨论】:

  • 不确定,确切地说,你在问什么。流量管理器不处理数据库。您的应用程序将处理数据库连接。不确定您指的是什么,让数据库句柄重定向到主数据库。而且:您指的是哪个数据库?有 SQL 数据库和 DocumentDB 作为托管的 PaaS 数据库服务。请相应地编辑您的问题,使其更具体。

标签: azure geo-replication


【解决方案1】:

在异地复制模式下使用 Azure SQL 时,这是一个常见问题。不能使用传统的 LB 技术,例如 Azure 流量管理器。在这种情况下,您应该在数据库连接上使用retry 模式,根据需要从主要名称到备用名称。

AFAIK,在连接到数据库后,没有简单的方法可以判断您是在主数据库还是只读辅助数据库上。根据this link,您可以调用一些存储的过程来了解拓扑。您可以使用 Azure PS/API 来理​​解这一点,但是您必须将该逻辑构建到您的应用程序中。

简而言之:

  1. 您需要处理数据库连接并使用重试 图案等
  2. 您应该实现CQRS 将读/写工作负载与 如果您想利用只读辅助节点,请互相访问

希望对您有所帮助。

【讨论】:

    猜你喜欢
    • 2011-09-25
    • 2018-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多