云计算 频道

在Spring中调用CLOUD FOUNDRY:基础知识

  【IT168 专稿】Cloud Foundry提供的服务使编写高效率的应用程序成为了可能。开发人员现在只需要选择所需要的服务,并不用关心服务的运营。例如应用中事务性访问起决定作用的部分可以使用Postgres,需要与文档集合数据进行交互的可以使用MongoDB,需要使用键-值抽象的可以使用Redis,需要使用消息创建有效架构的可以使用RabbitMQ。在该系列的四篇文章当中,我们将研究Spring应用如何调用Cloud Foundry服务。尽管我们只关注Spring,但是使用其他框架的开发者,尤其是使用基于JVM框架(Grails, Lift以及普通的Java Web框架)的开发者也能从该系列文章获益。

  在本文中,我们将研究Cloud Foundry如何向应用程序公开服务信息。在下一篇文章当中,我们将描述一个典型的Spring应用如何使用自动重新配置机制,允许我们在不用做任何修改的情况下使用服务。在第三篇文章中,Thomas Risberg将继续讲解如何使用云命名空间对服务消费进行控制。在第四篇文章中,Scott Andrews将介绍在Spring 3.1中如何整合配置文件支持以及云命名空间,创建应用,对服务进行显示控制,与此同时应用可以不做任何改变,继续在本地或Cloud Foundry中运行。读完本系列的四篇文章之后,你应该能够获取和Spring应用高效调用Cloud Foundry服务相关的足够多的信息。

  当在应用中绑定了Cloud Foundry服务比如Postgres或Mongo后,和绑定服务有关的信息比如主机,端口以及证书通过采用JSON进行编码的环境变量进行公开。为了说明这一点,我们将创建一个简单的Web应用,显示所有的环境变量信息。让我们从Spring MVC模板项目开始,然后在HomeController中添加下一个端点。

在Spring中调用CLOUD FOUNDRY:基础知识

  接下来就是部署这个应用了。我将使用vmc工具,当然也可以使用带有Cloud Foundry插件的STS。需要注意的是我使用的应用程序名是hello-env,默认的URL也是基于该程序名的(hello-env.cloudfoundry.com)。如果按照上述步骤编写代码,你会想选择将默认的URL作为应用名,因为该URL并未被占用。当然,你也可以将应用部署到Micro Cloud Foundry上。

在Spring中调用CLOUD FOUNDRY:基础知识

  创建应用: OK

  上传应用:

  检查可用的资源: OK

  进行资源处理: OK

  打包应用: OK

  上传 (8K): OK

  推送状态: OK

  保存应用: OK

  启动应用: OK

  这时,如果你浏览http://hello-env.cloudfoundry.com/env页面,将会看到所有环境变量的信息。很多环境变量的名字以VCAP_开头,显示有关该应用各种各样的信息。我们感兴趣的是VCAP_SERVICES变量,其内容如下:VCAP_SERVICES: {}

  该变量的映射为空,表明还没有绑定服务。让我们创建一个Postgres服务,命名为env-postgresql,并与应用进行绑定。请注意该命令的格式为:vmc create-service

  $ vmc create-service postgresql env-postgresql hello-env

  创建服务: OK

  绑定服务: OK

  停止应用: OK

  保存应用: OK

  启动应用: OK

  现在,浏览http://hello-env.cloudfoundry.com/env页面,你将会看到VCAP_SERVICES环境变量的值如下所示(为了方便阅读,对格式进行了调整):

在Spring中调用CLOUD FOUNDRY:基础知识

  上述信息包括了和应用绑定服务相关的所有信息:主机,端口,创建的JDBC URL的名字以及用户名和密码。

  让我们继续绑定另一个服务MongoDB。

  $ vmc create-service mongodb env-mongodb hello-env

  现在环境变量的值如下所示:

在Spring中调用CLOUD FOUNDRY:基础知识

  MongoDB部分再次包括了与绑定服务相关的所有信息。

  Cloud Foundry向应用程序展示信息的机制就是这样,这样一来应用就能够调用与之绑定的服务了。进行服务绑定时需要访问环境变量,解析JSON,创建访问对象(比如针对关系型数据库的 DataSource)。尽管不是很困难,但是程序员并不想直接处理这些东西。因此,Cloud Foundry提供了一些简化服务连接的机制。在下一篇文章中我们会进行介绍。

  在下一篇文章当中,将介绍自动重新配置机制,该机制不用对典型的Spring应用进行任何的修改就可以实现服务调用。

0
相关文章