Статьи

Пример приложения: Cloudfoundry и MongoDB

Введение: MongoDb NoSQL

Загрузите исходный код здесь .

Как и многие из вас, у меня также возник вопрос, что такое облачные вычисления? Я начал гуглить, скачал несколько инструментов, поиграл с ними и теперь понимаю несколько концепций.

В этом разделе я буду обсуждать одну из ключевых концепций облачных вычислений — Платформа как услуга, также известная как PaaS или облачная платформа. В основном облачная платформа обеспечивает поддержку разработки в локальной среде, а развертывание в удаленной среде и облачной платформе будет «самоанализом», с каким веб-сервером / какой базой данных должно работать приложение. Позвольте мне проиллюстрировать это диаграммой

MongoDb NoSQL

В этом пространстве мало ведущих игроков, таких как Salesforce.com ( Heroku , Force.com ) и Microsoft ( Azure ). Недавно VMware вошел в это пространство со своим собственным Cloudfoundry . Исходя из фона Java, это хороший инструмент для понимания деталей облачной платформы. Он хорошо интегрирован с STS IDE и немного глючит, но есть обходные пути.

В этом разделе обсуждается,

  1. Как Cloudfoundry Cloud Platform поддерживает WebServer и базу данных
  2. Как Cloudfoundry Cloud Platform помогает в заполнении базы данных
  3. Развертывание на платформе Cloud
  4.  «клей», чтобы сообщить облачной платформе о веб-сервере и базе данных
  5.  «клей» для генерации данных dbschema и Seed

подробности

Я расскажу вам простой пример использования Spring MVC и MongoDB , где вы выполняете базовую операцию CRUD для таблицы person. MongoDB является базой данных на основе документов, которая используется для хранения большого объема данных, также имеет возможности Map / Reduce , аналогичные Hadoop .

Чтобы быстро начать это,

Поддержка Cloudfoundry:

Поддержка WebServer и базы данных : Cloudfoundry Поддерживает SpringSource tc Server, а также поддерживает Jetty, если используется с Maven. База данных, поддерживает MySQL, vPostgres и MongoDB. Он имеет возможность анализировать контекстный файл Spring и понимать, какой тип приложения базы данных поддерживает, если у вас есть компонент с типом «org.apache.commons.dbcp.BasicDataSource», и он может связать его с соответствующей базой данных. Если это MongoDB, ему нужна фабрика mongo-db, как показано в этом примере.

Заполнение начальных данных базы данных . Обычно, если в вашем приложении есть конфигурация «jdbc: initialize-database», Cloudfoundry выполнит этот сценарий в своей связанной базе данных.

Конфигурация в приложении:

Развертывание в Cloudfoundry. Существует два способа развертывания кода в Cloudfoundry: командная строка и STS IDE.

Если вы хотите развернуть и запустить приложение с помощью командной строки VMC, вам нужно сделать следующее:

Move to the target folder
vmc target http://api.{instancename}.cloudfoundry.me

vmc push

give the application name as ‘spring-mongodb’

Bind to ‘mongodb’

Save configuration

Now open the browser and type ‘http://spring-mongodb.{instancename}.cloudfoundry.me/’

Если вы хотите развернуть и запустить приложение из STS IDE, вам нужно сделать следующее:

  • Чтобы настроить STS для работы с Cloudfoundry, перейдите по этой ссылке .
  • Импортируйте проект maven в ваш STS
  • Создайте новый Cloudfoundry Server и добавьте приложение spring-mongodb, опубликуйте войну приложений на хосте Cloudfoundry и просмотрите ваши изменения.
  • Вы также можете получить доступ к удаленной системе для журналов ошибок и файлов, как упомянуто в блоге SpringSource, упомянутом выше

Клей, чтобы сообщить Cloudfoundry о базе данных:

Основные изменения, которые вы должны внести в свое приложение для работы с Cloudfoundry,

  1. Maven изменения
<!-- CloudFoundry -->

  org.cloudfoundry
  cloudfoundry-runtime
  ${org.cloudfoundry-version}

  1. Конфигурация Mongodb

Клей для генерации данных dbschema и Seed в Cloudfoundry:

Вы можете создать Bean-компонент InitService с методом init и добавить все начальные данные, необходимые для приложения, как показано ниже:

public class InitService {
 private MongoTemplate mongoTemplate;
 public MongoTemplate getMongoTemplate() {
   return mongoTemplate;
 }
 public void setMongoTemplate(MongoTemplate mongoTemplate) {
  this.mongoTemplate = mongoTemplate;
 }
private void init() {
Person p = new Person ();
 p.setId(UUID.randomUUID().toString());
 p.setFirstName("John");
 p.setAge(25);
 mongoTemplate.save(p);
 p = new Person ();
 p.setId(UUID.randomUUID().toString());
 p.setFirstName("Jane");
 p.setAge(20);
 mongoTemplate.save(p);
 ..
}

В контексте bean-компонента определите bean-компонент, как показано ниже:

За исключением этих изменений, все остальное такое же, как и у любого другого приложения Spring MVC.

Путь вперед, вы можете получить образцы Cloudfoundry . Используя Git utlitiy, вы можете клонировать это на своем локальном компьютере. Есть простой пример hello-spring-mysql ; Вы можете быстро понять, как работает приложение на основе MySQL, используя этот пример.