一、什么是Cloud Foundry
Cloud Foundry是一个开源的平台即服务产品,它提供给开发者自由度去选择云平台,开发框架和应用服务。Cloud Foundry最初由 VMware 发起,得到了业界广泛的支持,它使得开发者能够更快更容易的开发,测试,部署和扩展应用。Cloud Foundry是一个开源项目,用户可以使用多种私有云发行版,也可以使用公共云服务,官网http://www.cloudfoundry.com
二、注册开发者账号
若要部署应用到Cloud Foundry,首先要申请开发者账号,https://my.cloudfoundry.com/signup,注册完成后的几分钟内,登录你的邮箱,您将收到主题为“Welcome to Cloud Foundry - Your signup is approved!”,内有登陆Cloud Foundry平台的用户名和临时密码(后面会介绍如何更改密码)
三、安装Eclipse CloudFoundry插件
1)启动Eclipse,选择菜单Help-- >Eclipse Marketplace,在弹出框里,输入Cloud Foundry,然后搜索,点击安装,安装后重启Eclipse,就代表安装完成了。2)安装完成需要调出这个插件使用,方法是:Window --> Show View ,在弹出框里选择Server,点击确定,这是就会在平时我们常用的控制台栏出现了Server这个栏目。如果我们曾使用过Tomcat的话,会在这里看到Tomcat服务选项。
四、部署应用到Cloud Foundry
(1)新建Cloud Foundry Server,在servers选项卡里单击右键-》new-》server-》选择Cloud Foundry,然后单击next
这时需要填入申请获得的账号和密码
然后单击next
这时可以将左边你的应用add到右边,然后单击finish,这时会弹出一个对话框,让你输入你部署在Cloud Foundry上web app名称
next,然后让你输入url地址(可修改)
然后单击finish后,又会弹出一个对话框问你绑定什么服务到你的应用,一般这里要设置数据库服务
单击加号选择mysql database
然后给你的这个服务起个名称,笔者这里命名为mysqlservice,然后单击finish
(2)Cloud Foundry参数设置
①修改密码
在Servers选项卡下双击VMware Cloud Foundry,弹出窗口
在overview里可以修改密码,修改后选择ChangePassword即可!
②启动mysql服务
单击Application选项卡,右击mysqlservice,然后选择open Tunnel
然后再右击mysqlservice选择show Tunnel information..
然后右击MySQLservice,选择copy all(这里主要用来复制cloudFoundry分配的数据名称,以及连接数据库的用户名和密码,以及端口)
比如笔者获得的信息如下:
UserName: u5SO4zfK53CcF
Password: pM3G4xIbq1peR
DatabaseName: df9bf5aaaa0fe4decbe74b96743761656
Port: 10100
URL: jdbc:mysql://127.0.0.1:10100/df9bf5aaaa0fe4decbe74b96743761656
这段信息很重要,因为我们连接mysql数据库的时候要用到
③远程新建和操作数据库方法一
本方法是通过Eclipse自带的Data Source Explorer,选择菜单Window-》show-》view-》Data Source Explorer
然后右击Database Connections-》然后选择mysql-》next-》选择mysql5.1驱动,如果提示驱动无效,请单击jar list选项卡,然后从你的硬盘中选择mysql-connector-java-5.1.20-bin.jar,然后填入上面我们获取的数据库的相关信息
然后单击Test Connection,测试能否连接到cloudFoundry提供的mysql服务,成功后即可单击finish完成,完成后可在data source Explorer选项卡下看到如下信息
数据库连接建好好,如何创建数据库呢,怎么远程执行sql呢?右击数据库MySQL_CF选择open SQL Scrapbook,我们可以在这里编写sql,然后右击选择执行即可!
④远程新建和操作数据库方法二
方法一有些不太方便,我们可以借助Navicat客户端来远程连接mysql数据,启动Navicat后新建连接信息如下:
用户名,密码,端口后填入我们上面获取的信息即可,然后就可以直接操作数据库了
五、程序中如何获取数据连接
{"mysql-5.1":[
{
"name":"mysql-4f700",
"label":"mysql-5.1",
"plan":"free",
"tags":["mysql","mysql-5.1","relational"],
"credentials":{
"name":"d6d665aa69817406d8901cd145e05e3c6",
"hostname":"mysql-node01.us-east-1.aws.af.cm",
"host":"mysql-node01.us-east-1.aws.af.cm",
"port":3306,
"user":"uB7CoL4Hxv9Ny",
"username":"uB7CoL4Hxv9Ny",
"password":"pzAx0iaOp2yKB"
}
},
{
"name":"mysql-f1a13",
"label":"mysql-5.1",
"plan":"free",
"tags":["mysql","mysql-5.1","relational"],
"credentials":{
"name":"db777ab9da32047d99dd6cdae3aafebda",
"hostname":"mysql-node01.us-east-1.aws.af.cm",
"host":"mysql-node01.us-east-1.aws.af.cm",
"port":3306,
"user":"uJHApvZF6JBqT",
"username":"uJHApvZF6JBqT",
"password":"p146KmfkqGYmi"
}
}
]}
使用访问操作系统环境变量的编程语言工具检索 VCAP_SERVICES 的值。例如,在 Java 中为 java.lang.System.getenv("VCAP_SERVICES"),在 Ruby 中为 ENV['VCAP_SERVICES']。在 Node.js (JavaScript) 中使用 process.env.VCAP_SERVICES,在 Python 中使用 os.getenv("VCAP_SERVICES")。
(2)数据库连接示例代码,以下代码采用fastjson去解析 VCAP_SERVICES 的值,采用jfinal框架的c3p0的配置
String db_json = java.lang.System.getenv("VCAP_SERVICES");
String dbname,username,password,host,port;
if(StringKit.isBlank(db_json)){
//本机数据库设置
dbname = "blogdb";
username = "root";
password = "test";
host = "localhost";
port = "3306";
}else{
//cloundFoundry数据库信息解析
JSONObject credentials = JSONObject.parseObject(db_json).getJSONArray("mysql-5.1").getJSONObject(0).getJSONObject("credentials");
dbname = credentials.getString("name");
username = credentials.getString("username");
password = credentials.getString("password");
host = credentials.getString("host");
port = credentials.getString("port");
}
C3p0Plugin cp = new C3p0Plugin("jdbc:mysql://" + host + ":" + port + "/" + dbname, username, password);
六、如何查看应用部署错误日志
若部署的应用出错,如何查看错误日志呢?CloudFoundry插件给我们提供了Remote Systems View,在Applications选项卡下双击你部署的应用,就会在右边下面有个Remote Systems View链接,双击即可打开远程视图