数智资源网
首页 首页 云计算 云技术 查看内容

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

木马童年 2019-2-28 06:00 126 0

Cloud Foundry提供的服务使编写高效率的应用程序成为了可能。开发人员现在只需要选择所需要的服务,并不用关心服务的运营。例如应用中事务性访问起决定作用的部分可以使用Postgres,需要与文档集合数据进行交互的可 ...

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
为您推荐
纯正商业级应用-微信小程序开发实战教程(附源码)

纯正商业级应用-微信小程序开发实战教程(

纯正商业级应用-微信小程序开发实战(附源码)——更多资源,课程更新在 多智时代 duoz…...

selenium3+python3+unittest自动化测试,自动化测试视频教程下载

selenium3+python3+unittest自动化测试,自

课程介绍:自动化测试视频教程 selenium3+python3+unittest自动化测试,2018年10月Sele…...

SpringCloud Finchley三版本微服务实战,网盘视频教程下载

SpringCloud Finchley三版本微服务实战,网

课程介绍:微服务架构已是当下最热门的话题,许多公司都在从传统架构系统向微服务转化…...

最新最全面的Java接口开发与自动化测试课程,视频教程下载

最新最全面的Java接口开发与自动化测试课程

课程介绍:本课程由BAT测试老司机带你学习Java接口自动化测试,掌握HttpClient和TestN…...

Python框架Flask系列2——全栈,视频教程下载

Python框架Flask系列2——全栈,视频教程下

课程介绍:本套课程的目标是从零基础开始,使用Flask框架开发企业级的项目。课程中不…...

Python Flask构建可扩展的RESTful API,视频教程下载

Python Flask构建可扩展的RESTful API,视

课程介绍:前后端分离大势所趋,本课程将构建一套优秀的RESTful API,可以适配小程序…...