适用对象:
              
               卡珊德拉
本文演示了如何创建一个示例应用程序,该应用程序使用 Spring Data 通过 Azure Cosmos DB for Apache Cassandra 存储和检索信息。
先决条件
为完成本文介绍的步骤,需要满足以下先决条件:
- Azure 订阅;如果还没有 Azure 订阅,可激活 MSDN 订阅者权益或注册试用版订阅。 
- 一个受支持的 Java 开发工具包 (JDK)。 
- Apache Maven 3.0 或更高版本。 
- 用来测试功能的 Curl 或类似的 HTTP 实用工具。 
- Git 客户端。 
注意
下面所述的示例实现自定义扩展,以便在使用 Azure Cosmos DB for Apache Cassandra 时获得更好的体验。 它们包括自定义重试和负载均衡策略,以及实现推荐的连接设置。 要更全面地了解如何使用自定义策略,请参阅版本 3 和版本 4 的 Java 示例。
创建 Azure Cosmos DB for Apache Cassandra 帐户
- 在 Azure 门户菜单或主页中,选择“ 创建资源”。 
- 在“新建”页面中搜索“Azure Cosmos DB”,然后选择它。 
- 在“Azure Cosmos DB”页上,选择“创建”。 
- 在 API 页上的 Cassandra 部分下,选择“ 创建”。 - API 确定要创建的帐户的类型。 Azure Cosmos DB 提供五种 API:适用于文档数据库的 NoSQL、适用于图形数据库的 Gremlin、适用于文档数据库的 MongoDB、Azure 表和 Cassandra。 必须为每种 API 创建单独的帐户。 - 选择 Cassandra ,因为在本教程中,你将创建一个适用于 Cassandra API 的表。 - 若要了解有关 Cassandra API 的详细信息,请参阅 什么是适用于 Apache Cassandra 的 Azure Cosmos DB?。 
- 在 “创建 Azure Cosmos DB 帐户 ”页上,输入新 Azure Cosmos DB 帐户的基本设置。 - 设置 - 值 - 说明 - 订阅 - 你的订阅。 - 选择要用于此 Azure Cosmos DB 帐户的 Azure 订阅。 - 资源组 - 新建。 
 然后输入与 帐户名称相同的名称。- 选择“新建”。 然后输入帐户的新资源组名称。 为简单起见,请使用与 Azure Cosmos DB 帐户名称相同的名称。 - 帐户名 - 输入唯一名称。 - 输入标识此 Azure Cosmos DB 帐户的唯一名称。 你的帐户 URI ( - cassandra.cosmos.azure.com),已追加到唯一帐户名称。
 帐户名称只能使用小写字母、数字和连字符(-),并且长度必须介于 3 到 31 个字符之间。- 位置 - 离用户最近的区域。 - 选择用于托管 Azure Cosmos DB 帐户的地理位置。 使用离用户最近的位置,使他们能够以最快的速度访问数据。 - 容量模式 - 预配的吞吐量 或 无服务器。 - 选择 “预配吞吐量 ”以在 预配吞吐量 模式下创建帐户。 选择 “无服务器 ”以在 无服务器 模式下创建帐户。 - 应用 Azure Cosmos DB 免费层折扣 - 应用 或 不适用。 - 使用 Azure Cosmos DB 免费层,可以在帐户中免费获取前 1,000 RU/秒和 25 GB 的存储空间。 详细了解免费层。 - 注意 - 每个 Azure 订阅最多可拥有一个免费的 Azure Cosmos DB 帐户。 创建帐户时必须选择加入。 如果您未看到应用免费层的折扣选项,则是因为订阅中的另一个帐户已经启用了免费层。   
- 在“ 全局分发 ”选项卡上,配置以下详细信息。 使用本教程的默认值。 - 设置 - 值 - 说明 - 异地冗余 - 禁用 - 通过将你的区域与另一区域进行配对来启用或禁用帐户的全局分发。 稍后可以将更多区域添加到帐户。 - 多区域写入 - 禁用 - 利用多区域写入功能,可以利用全球数据库和容器的预配吞吐量。 - 可用性区域 - 禁用 - 可用性区域是 Azure 区域中的独立位置。 每个区域由一个或多个数据中心组成,这些数据中心配置了独立电源、冷却和网络。 - 如果选择 “无服务器 ”作为 容量模式,则以下选项不可用: - 应用免费层折扣
- 异地冗余
- 多区域写入
 
- (可选)可以在以下选项卡上配置其他详细信息: 
- 选择“查看 + 创建”。 
- 检查帐户设置,然后选择“创建”。 创建帐户需要几分钟时间。 等待门户页显示“你的部署已完成”消息。   
- 选择“转到资源”,转到 Azure Cosmos DB 帐户页。 
配置示例应用程序
以下过程配置测试性应用程序。
- 打开命令 shell 并克隆以下示例之一: - 对于 Java 版本 3 驱动程序和相应的 Spring 版本: - git clone https://github.com/Azure-Samples/spring-data-cassandra-on-azure-extension-v3.git- 对于 Java 版本 4 驱动程序和相应的 Spring 版本: - git clone https://github.com/Azure-Samples/spring-data-cassandra-on-azure-extension-v4.git- 注意 - 尽管下面描述的用法对于上面的 Java 版本 3 和版本 4 示例是相同的,但为了包括自定义重试和负载均衡策略,它们采用了不同的实现方式。 如果要对现有的 Spring Java 应用程序进行更改,建议查看代码以了解如何实现自定义策略。 
- 在示例项目的 resources 目录中找到 application.properties 文件,或者创建此文件(若此文件尚不存在)。 
- 在文本编辑器中打开 application.properties 文件,在文件中添加或配置以下行,并将示例值替换为上文中的相应值: - spring.data.cassandra.contact-points=<Account Name>.cassandra.cosmos.azure.cn spring.data.cassandra.port=10350 spring.data.cassandra.username=<Account Name> spring.data.cassandra.password=********- 其中: - 参数 - 说明 - spring.data.cassandra.contact-points- 指定本文上文中所述的接触点。 - spring.data.cassandra.port- 指定本文上文中所述的端口。 - spring.data.cassandra.username- 指定本文上文中所述的用户名。 - spring.data.cassandra.password- 指定本文上文中所述的主要密码。 
- 保存并关闭 application.properties 文件。 
打包并测试示例应用程序
浏览到 .pom 文件所在目录,以便生成并测试应用程序。
- 使用 Maven 生成示例应用程序,例如: - mvn clean package
- 启动示例应用程序;例如: - java -jar target/spring-data-cassandra-on-azure-0.1.0-SNAPSHOT.jar
- 在命令提示符下使用 - curl创建新记录,如以下示例所示:- curl -s -d "{\"name\":\"dog\",\"species\":\"canine\"}" -H "Content-Type: application/json" -X POST http://localhost:8080/pets curl -s -d "{\"name\":\"cat\",\"species\":\"feline\"}" -H "Content-Type: application/json" -X POST http://localhost:8080/pets- 你的应用程序应返回如下所示的值: - Added Pet{id=60fa8cb0-0423-11e9-9a70-39311962166b, name='dog', species='canine'}. Added Pet{id=72c1c9e0-0423-11e9-9a70-39311962166b, name='cat', species='feline'}.
- 在命令提示符下使用 - curl检索所有现有记录,如以下示例所示:- curl -s http://localhost:8080/pets- 你的应用程序应返回如下所示的值: - [{"id":"60fa8cb0-0423-11e9-9a70-39311962166b","name":"dog","species":"canine"},{"id":"72c1c9e0-0423-11e9-9a70-39311962166b","name":"cat","species":"feline"}]
清理资源
执行完应用和 Azure Cosmos DB 帐户的操作以后,可以删除所创建的 Azure 资源,以免产生更多费用。 若要删除资源,请执行以下操作:
- 在 Azure 门户的“搜索”栏中,搜索并选择“资源组”。 
- 从列表中选择为本快速入门创建的资源组。   
- 在资源组“概览”页上,选择“删除资源组”。   
- 在下一窗口中输入要删除的资源组的名称,然后选择“删除” 。