分布式系统一直都是非常复杂的,尤其是分布式数据库系统,你如何保证数据的一致性?你如何保证其性能和延迟?你如何实现全球分布而不需要客户做复杂的配置?在CAP的定理之下,如何设计并对分布式数据库系统做取舍?Azure Cosmos DB以最简单使用方式为客户提供了全球分布式数据库服务,支持自定义的一致性,保证延迟,而Spring是Java开发者最喜欢的开源框架之一,本文主要介绍如何使用Spring MongoDB来访问Azure Cosmos DB MongoDB模型:
- 如何创建和配置Azure Cosmos DB的MongoDB数据库
- 如何使用标准的Spring-MongoDB框架和Spring Boot访问Cosmos DB
- 如何配置Azure Cosmos DB的全球分发模式
- Spring应用和MongoDB工具如何访问Cosmos DB的分发数据库
Azure Cosmos DB简介
Azure的Cosmos DB是微软提供的一个全球分布的,大规模扩展的,多模型支持的数据库服务,目前流行的物联网服务,互联网应用,电子商务网站等应用都可以使用Cosmos DB来支持,Cosmos DB目前支持Table接口,Gremlin的graph计算,MongoDB接口,SQL接口等等:
Spring Boot和Spring MongoDB
而对于Java开发者来讲,Spring框架可能是最为流行的开源框架了,基于IOC和AOP思想的优雅的编程框架的无数子项目和开源框架,极大的简化了Java开发人员的开发流程和工作量,而目前Spring社区大力推广的Spring Boot更进一步的推动了Spring应用的快速构建开发模型:
创建和配置Azure Cosmos DB的MongoDB数据库
1. 登录世纪互联运营的中国Azure(https://portal.azure.cn),当然如果你有海外Azure的账号也是一样的,选择新建,数据库,选择Azure Cosmos DB创建"create":
2. 在ID部分输入你的Cosmos DB名称,就如之前介绍的,Cosmos DB是多模型数据库,所以在API部分请选择"MongoDB",然后输入资源组名称,选择位置,点击确定即可创建:
3. 在创建完成后,会自动跳转到数据库管理主页,在主页选择"添加集合",来新建数据库和集合:
请注意:
- CosmosDB对于容量大小并没有限制,默认最高为10TB,但如果需要更高的存储,可以提交支持请求增加
- 初始吞吐量是预先分配给集合的请求单元,默认最高为100000 RU/S, 但如果需要更高的存储,可以提交支持请求增加
-
在创建和配置数据库的过程中,分区键是唯一的,非常重要的配置项,在后续的篇章我会专门讲,在此使用设备号作为partition key
下一部分介绍如何使用Spring开发,使用Spring-MongoDB访问Azure Cosmos DB.