首页 文章

cosmosdb / documentdb中的多主机

提问于
浏览
4

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

3 回答

  • 2

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

  • 1

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

    Azure Cosmos DB中的多主机提供高水平的可用性(99.999%),写入数据的单位数毫秒延迟和可扩展性,内置全面且灵活的冲突解决方案支持 . 多主机由多个主区域组成,这些主区域同样参与随处写入模型(主动 - 主动模式),并用于确保数据在您需要的任何时间可用 . 对单个区域所做的更新将异步传播到所有其他区域(而这些区域又是自己的主区域) . 在多主配置中作为主区域运行的Azure Cosmos DB区域自动用于汇聚所有副本的数据并确保全局一致性和数据完整性 . Azure Cosmos DB实现了处理数据库引擎本身内部冲突写入的逻辑 . Azure Cosmos DB通过提供多种冲突解决模型提供全面而灵活的冲突解决支持,包括自动(无CRDT冲突的复制数据类型),最后写入胜利(LWW)和自定义(存储过程),以自动解决冲突 . 冲突解决模型提供了正确性和一致性保证,并消除了开发人员在地理故障转移和跨区域写入冲突下必须考虑事件的一致性,可用性,性能,复制延迟和复杂组合的负担 .

    更多细节:https://docs.microsoft.com/en-us/azure/cosmos-db/multi-region-writers


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

    enter image description here

  • 2

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

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

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

相关问题