cosmosdb / documentdb中的多主机

时间:2017-05-13 00:44:03

标签: azure azure-cosmosdb

如何在cosmosdb中设置多个写区域,以便我不需要在应用程序层中组合两个或多个不同区域的查询结果?从这个文档中,似乎cosmosdb全局分布是具有一个编写器和多个读取secondarys的全局复制,而不是真正的多主机。 https://docs.microsoft.com/en-us/azure/documentdb/documentdb-multi-region-writers

3 个答案:

答案 0 :(得分:3)

截至2018年5月,Cosmos DB现在使用CRDT数据类型和自动冲突解决方案本机支持多主机。

  

Azure Cosmos DB中的多主机提供高级别的可用性   (99.999%),写入数据的单位数毫秒延迟   可扩展性,内置全面而灵活的冲突   决议支持。

     

Multi-master由多个主区域组成   参与随意写随机模型(主动 - 主动模式)和它   用于确保数据在您需要的任何时间可用   它。对单个区域所做的更新是异步传播的   到所有其他地区(反过来又是自己的主要地区)。   Azure Cosmos数据库区域在多主机中作为主区域运行   配置自动工作以收敛所有副本的数据   并确保全球一致性和数据完整性。

     

Azure Cosmos DB实现了处理冲突写入的逻辑   在数据库引擎本身内部。 Azure Cosmos DB提供   通过提供全面而灵活的冲突解决支持   几种冲突解决模型,包括自动(CRDT-   无冲突复制数据类型),最后写入胜利(LWW)和   用于自动冲突解决的自定义(存储过程)。该   冲突解决模型提供正确性和一致性   保证并消除开发人员必须思考的负担   关于一致性,可用性,性能,复制延迟和   地理故障和跨区域的复杂事件组合   写冲突。

此处有更多详情:https://docs.microsoft.com/en-us/azure/cosmos-db/multi-region-writers

目前处于预览阶段,可能需要获得批准才能使用它:

enter image description here

答案 1 :(得分:2)

根据您提供的link,根据我的理解。 cosmosdb / documentdb中的多主机由多个文档分别针对写区域实现,并从组合查询中读取文档。目前似乎不支持在cosmosdb中设置多个写区域,因此不需要组合两个或更多不同区域的查询结果。

答案 2 :(得分:1)

引用的文章说明了如何在Cosmosdb中实现多主机,同时明确声明它不是多主数据库。

有很多方法可以模拟"通过配置一致性级别(例如会话)来实现多主场景,这将允许调用者在不将其写入写入区域的情况下查看其本地副本。您可以在此处找到各个级别的详细信息:https://docs.microsoft.com/en-us/azure/cosmos-db/consistency-levels

除此之外,考虑一下您是否真的需要通过使用一致性级别来考虑多主机,考虑可接受的延迟等等。很少有情况不能容忍延迟,特别是当您有足够的工具时提供近似于本地写入主机的用户体验。当涉及远程网络时,没有实时的事情;)

相关问题