【问题标题】:Cosmos DB selective regional replicationCosmos DB 选择性区域复制
【发布时间】:2019-03-30 17:10:47
【问题描述】:

我们计划使用 cosmos db 单主部署,其中所有主数据都从单个区域维护。该应用程序分布在各个区域,我们需要提供对各个区域的读取访问权限。但是,我们希望过滤复制,因为并非所有区域都会对 cosmos DB 中的所有数据感兴趣。有没有办法使用选择性区域特定复制?我知道我们可以使用 Cosmos DB 触发器,然后使用功能应用程序等来复制流量,但这在维护和监控方面是一种开销。因此很想知道我们是否可以使用任何本机功能。

【问题讨论】:

    标签: azure azure-cosmosdb replication


    【解决方案1】:

    内置的异地复制机制对您完全透明。你看不到它,也无能为力。如果不编写自定义内容,就无法按照您的描述进行操作。

    如果您真的想要复制选定的数据,那么您需要执行以下操作(这是一个糟糕的解决方案,您不应该使用它):

    • 创建一个主要的事实来源 Cosmos DB 帐户。那就是你所说的“单主”。
    • 在您想要的任何地区创建几个其他帐户。
    • 使用 Cosmos DB 触发器 Azure 函数或更改源处理器库来侦听主帐户上的更改,然后使用您的筛选逻辑将它们复制到需要使用它们的其他帐户中。
    • 根据应用程序的部署环境为每个应用程序使用不同的连接字符串

    只是将数据复制到所有区域有什么问题?没有缺点。

    【讨论】:

    • 感谢您的快速回复。我们不想从安全和范围的角度复制所有数据。还想提一下,您描述的解决方案似乎与我用 cosmos db 触发器描述的解决方案相似(也许命名法不正确)。您能否提及这种方法可能存在的问题?
    • 可维护性是最大的一个。您将必须拥有多个帐户,具有多个区域的多个连接字符串,并且区域指定部署设置和数据库供应配置。如果您乐于维护所有这些,那就去做吧。
    • 好的,我认为从成本和性能的角度来看可能存在问题。感谢您的回复 - 同意可能存在需要考虑的可维护性问题。还有一些自定义代码需要维护和监控..
    • @NickChapsas 是否有关于如何在 CosmosDB 中部分复制数据的更新?我们有一个特殊的用例,由于 GDPR 和其他一些限制,某些数据无法复制到某些区域,但我们希望具有多区域读/写。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-17
    • 1970-01-01
    • 2023-02-21
    • 2020-06-23
    相关资源
    最近更新 更多