Как использовать API Apache Cassandra Spring Data с Azure Cosmos DB

В этой статье показано создание примера приложения, использующего Spring Data для хранения и извлечения информации с помощью API Cassandra для Azure Cosmos DB.

Предварительные требования

Чтобы выполнить действия, описанные в этой статье, необходимо следующее:

создание учетной записи Azure Cosmos DB;

Следующая процедура создает и настраивает учетную запись Cosmos на портале Azure.

Создание учетной записи Cosmos DB с помощью портала Azure

Примечание

Более подробные сведения о создании учетных записей Azure Cosmos DB см. в статье о документации по Azure Cosmos DB.

  1. Перейдите на портал Azure по адресу https://portal.azure.com/ и выполните вход.

  2. Выберите Создать ресурс, Начало работы и Azure Cosmos DB.

    Портал Azure, создание ресурса, поиск Azure Cosmos DB.

  3. На экране Выберите вариант API выберите Cassandra.

    Портал Azure, создание ресурса, выбор варианта API, Cassandra.

  4. Укажите следующие сведения:

    • Подписка: Укажите подписку Azure, которую нужно использовать.
    • Группа ресурсов. Укажите, следует ли создать группу ресурсов, или выберите имеющуюся группу ресурсов.
    • Имя учетной записи. Для учетной записи Cosmos DB выберите уникальное имя. Это имя будет использоваться для создания полного доменного имени, например wingtiptoyscassandra.documents.azure.com.
    • API. Для работы с этим руководством выберите Cassandra.
    • Расположение. Укажите ближайший географический регион для базы данных.

    Указание параметров учетной записи Cosmos DB.

  5. После ввода всех этих данных нажмите кнопку Отзыв и создание.

  6. Если при просмотре страницы все выглядит правильно, щелкните Создать.

    Проверка параметров учетной записи Cosmos DB.

Развертывание базы данных занимает несколько минут.

Добавление пространства ключей к учетной записи Azure Cosmos DB

  1. Перейдите на портал Azure по адресу https://portal.azure.com/ и выполните вход.

  2. Выберите Все ресурсы, а затем щелкните только что созданную учетную запись Azure Cosmos DB.

  3. Выберите Обозреватель данных, щелкните стрелку вниз и выберите пункт New Keyspace (Создать пространство ключей). Введите уникальный идентификатор в поле Keyspace id (Идентификатор пространства ключей), а затем нажмите кнопку ОК.

    Выбор нового пространства ключей.

    Создание пространства ключей Cosmos DB.

Получение параметров подключения к учетной записи Azure Cosmos DB

  1. Перейдите на портал Azure по адресу https://portal.azure.com/ и выполните вход.

  2. Выберите Все ресурсы, а затем щелкните только что созданную учетную запись Azure Cosmos DB.

  3. Выберите Строки подключения и скопируйте соответствующие значения для полей Точка контакта, Порт, Имя пользователя и Основной пароль. Позже эти значения будут использоваться для настройки приложения.

    Получение параметров подключения к Cosmos DB.

Настройка примера приложения

Следующая процедура настраивает тестовое приложение.

  1. Откройте командную строку и клонируйте пример проекта с помощью команды Git, как в следующем примере:

    git clone https://github.com/Azure-Samples/spring-data-cassandra-on-azure.git
    
  2. Найдите файл application.properties в каталоге resources примера приложения или создайте его, если он еще не существует.

  3. Откройте файл application.properties в текстовом редакторе, добавьте или настройте указанные ниже строки в файл и замените примеры значений на соответствующие полученные ранее значения:

    spring.data.cassandra.contact-points=wingtiptoyscassandra.cassandra.cosmos.azure.com
    spring.data.cassandra.port=10350
    spring.data.cassandra.username=wingtiptoyscassandra
    spring.data.cassandra.password=********
    

    Где:

    Параметр Описание
    spring.data.cassandra.contact-points Указывается точка контакта, описанная ранее в этой статье.
    spring.data.cassandra.port Указывается порт, описанный ранее в этой статье.
    spring.data.cassandra.username Указывается имя пользователя, описанное ранее в этой статье.
    spring.data.cassandra.password Указывается основной пароль, описанный ранее в этой статье.
  4. Сохраните и закройте файл application.properties.

Упаковывание и тестирование примера приложения

Перейдите в каталог, содержащий файл .pom, чтобы создать и протестировать приложение.

  1. Создайте пример приложения с помощью Maven, например:

    mvn clean package
    
  2. Запустите пример приложения, например:

    java -jar target/spring-data-cassandra-on-azure-0.1.0-SNAPSHOT.jar
    
  3. Из командной строки создайте записи с помощью 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'}.
    
  4. Получите все имеющиеся записи из командной строки с помощью 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"}]
    

Итоги

С помощью этого руководства вы создали пример приложения Java, использующий Spring Data для хранения и извлечения информации с помощью API Cassandra для Azure Cosmos DB.

Очистка ресурсов

Если они больше не нужны, используйте портал Azure, чтобы удалить ресурсы, созданные в этой статье во избежание непредвиденных расходов.

Дальнейшие действия

Дополнительные сведения о Spring и Azure см. в центре документации об использовании Spring в Azure.

Дополнительные ресурсы

Дополнительные сведения об использовании Java в Azure см. в статьях Azure для разработчиков Java и Working with Azure DevOps and Java (Работа с Azure DevOps и Java).