快速入门:使用 Azure Cosmos DB 的用于 MongoDB 的 API 和 Java SDK 生成 Web 应用

Azure Cosmos DB 是 21Vianet 提供的多区域分布式多模型数据库服务。 可快速创建和查询文档数据库,这些数据库受益于 Cosmos DB 核心的多区域分布和水平缩放功能。

本快速入门演示如何使用 Azure Cosmos DB 的用于 MongoDB 的 API 创建 Cosmos 帐户。 然后生成并部署使用 MongoDB Java 驱动程序构建的控制台应用。

先决条件

在运行此示例之前,必须具备以下先决条件:

  • JDK 1.7+(如果没有 JDK,请运行 apt-get install default-jdk
  • Maven(如果没有 Maven,请运行 apt-get install maven

如果没有 Azure 订阅,可在开始前创建一个试用帐户

对于本教程,可以使用 Azure Cosmos DB 模拟器,其连接字符串为:

mongodb://localhost:C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==@localhost:10255/admin?ssl=true

创建数据库帐户

  1. 在新窗口中,登录到 Azure 门户

  2. 在左菜单中,依次单击“创建资源”、“数据库”,然后在“Azure Cosmos DB”下单击“创建”。

    Azure 门户的屏幕截图,其中突出显示了“更多服务”和“Azure Cosmos DB”

  3. 在“创建 Azure Cosmos DB 帐户”页中,输入新 Azure Cosmos DB 帐户的设置。

    设置 Description
    订阅 订阅 选择要用于此 Azure Cosmos DB 帐户的 Azure 订阅。
    资源组 新建

    然后输入在 ID 中提供的同一唯一名称
    选择“新建”。 然后输入帐户的新资源组名称。 为简单起见,可以使用与 ID 相同的名称。
    帐户名 输入唯一的名称 输入标识此 Azure Cosmos DB 帐户的唯一名称。 由于 documents.azure.cn 字符串将追加到所提供的 ID 后面以创建 URI,因此,请使用唯一的 ID。

    该 ID 只能使用小写字母、数字和连字符 (-) 字符。 它的长度必须介于 3 到 31 个字符之间。
    API Azure Cosmos DB 的用于 MongoDB 的 API API 确定要创建的帐户的类型。 Azure Cosmos DB 提供五种 API:适用于文档数据库的 Core (SQL)、适用于图形数据库的 Gremlin、适用于文档数据库的用于 Azure Cosmos DB 的 API MongoDB、Azure 表和 Cassandra。 目前,你必须为每种 API 创建单独的帐户。

    选择“MongoDB”,因为本快速入门将创建使用 MongoDB 的表。
    位置 选择离用户最近的区域 选择用于托管 Azure Cosmos DB 帐户的地理位置。 使用离用户最近的位置,使他们能够以最快的速度访问数据。

    选择“查看 + 创建”。 可以跳过“网络”和“标记”部分。

    Azure Cosmos DB 的“新建帐户”页

  4. 创建帐户需要几分钟时间。 等待门户中显示“祝贺你!具有 MongoDB 的网络协议兼容性的 Cosmos 帐户已准备就绪”页面。

    Azure 门户“通知”窗格

添加集合

将新数据库命名为 db,将新集合命名为 coll

现在可以在 Azure 门户中使用数据资源管理器工具来创建数据库和集合。

  1. 单击“数据资源管理器” > “新建集合”。

    “添加集合”区域显示在最右侧,可能需要向右滚动才能看到它。

    Azure 门户“数据资源管理器”,“添加集合”窗格

  2. 在“添加集合”页上,输入新集合的设置。

    设置 建议的值 说明
    数据库 ID 任务 输入 Tasks 作为新数据库的名称。 数据库名称必须包含 1 到 255 个字符,不能包含 /, \\, #, ? 或尾随空格。
    集合 ID Items 输入 Items 作为新集合的名称。 集合 ID 与数据库名称的字符要求相同。
    分区键 输入分区键,例如 /userid。
    吞吐量 400 RU 将吞吐量更改为每秒 400 个请求单位 (RU/s)。 如果想要减少延迟,以后可以增加吞吐量。

    除了前面的设置,还可以选择为集合添加“唯一键”。 在此示例中,请将此字段留空。 开发人员可以使用唯一键向数据库添加一层数据完整性。 创建集合时,通过创建唯一键策略,可确保每个分区键的一个或多个值的唯一性。 若要了解详细信息,请参阅 Azure Cosmos DB 中的唯一键一文。

    单击“确定”。

    数据资源管理器将显示新的数据库和集合。

    显示新的数据库和集合的 Azure 门户数据资源管理器

克隆示例应用程序

现在让我们从 GitHub 克隆应用,设置连接字符串,然后运行该应用。 会看到以编程方式处理数据是多么容易。

  1. 打开命令提示符,新建一个名为“git-samples”的文件夹,然后关闭命令提示符。

    md "C:\git-samples"
    
  2. 打开诸如 git bash 之类的 git 终端窗口,并使用 cd 命令更改为要安装示例应用的新文件夹。

    cd "C:\git-samples"
    
  3. 运行下列命令以克隆示例存储库。 此命令在计算机上创建示例应用程序的副本。

    git clone https://github.com/Azure-Samples/azure-cosmos-db-mongodb-java-getting-started.git
    
  4. 然后在偏好的编辑器中打开代码。

查看代码

此步骤是可选的。 如果有意了解如何使用代码创建数据库资源,可以查看以下代码片段。 否则,可以直接跳转到更新连接字符串

以下代码片段全部摘自 Program.java 文件。

  • 将对 DocumentClient 进行初始化。

    MongoClientURI uri = new MongoClientURI("FILLME");`
    
    MongoClient mongoClient = new MongoClient(uri);            
    
  • 会创建新数据库和集合。

    MongoDatabase database = mongoClient.getDatabase("db");
    
    MongoCollection<Document> collection = database.getCollection("coll");
    
  • 使用 MongoCollection.insertOne 插入一些文档

    Document document = new Document("fruit", "apple")
    collection.insertOne(document);
    
  • 使用 MongoCollection.find 执行一些查询

    Document queryResult = collection.find(Filters.eq("fruit", "apple")).first();
    System.out.println(queryResult.toJson());       
    

更新连接字符串

现在返回到 Azure 门户,获取连接字符串信息,并将其复制到应用。

  1. 从帐户中选择“快速启动”,选择 Java,然后将连接字符串复制到剪贴板

  2. 打开 Program.java 文件,将 MongoClientURI 构造函数的参数替换为该连接字符串。 现已使用与 Azure Cosmos DB 进行通信所需的所有信息更新应用。

运行控制台应用

  1. 在终端中运行 mvn package,安装所需的 npm 模块

  2. 在终端中运行 mvn exec:java -D exec.mainClass=GetStarted.Program,启动 Java 应用程序。

现在可以使用 Robomongo / Studio 3T 来查询、修改和处理此新数据。

在 Azure 门户中查看 SLA

在 Azure 门户中监视帐户中资源的吞吐量、存储空间、可用性、延迟和一致性。 让我们快速了解一下这些指标。

  1. 在导航菜单中单击“指标”。

    Azure 门户中的指标

  2. 单击每个选项卡,以便了解 Azure Cosmos DB 提供的指标。

    Azure Cosmos DB 服务级别协议 (SLA) 关联的每个图表都提供了一行,显示是否违反了任何 SLA。 Azure Cosmos DB 通过此套指标使监视 SLA 的操作更透明。

    Azure Cosmos DB 指标套件

清理资源

如果不打算继续使用此应用,请按照以下步骤删除本快速入门中创建的所有资源,以免产生任何费用:

  1. 在 Azure 门户的最左侧选择“资源组”,,然后选择创建的资源组。

    如果左侧菜单处于折叠状态,请单击 “展开”按钮 将其展开。

    Azure 门户中的指标

  2. 在新窗口中选择资源组,然后单击“删除资源组”。

    Azure 门户中的指标

  3. 在新窗口中键入要删除的资源组的名称,然后单击“删除”。

后续步骤

在本快速入门中,你已了解如何创建 Cosmos 帐户、创建集合和运行控制台应用。 现在可以向你的 Cosmos 数据库导入更多数据。