在cloud foundry上爲本身的獨立應用添加數據庫服務

 相關參考資料以下: css

  1. 如何把獨立應用部署到cloud foundry: http://cnblog.cloudfoundry.com/?p=382
  2. mysql數據庫服務的介紹:http://docs.cloudfoundry.com/services/mysql/mysql-overview.html
  3. 如何安裝vmc: http://docs.cloudfoundry.com/tools/vmc/vmc.html 

補充:由於cloud foundry如今支持的框架不夠多,當用到一些暫時沒有被cloud foundry支持的框架時,用普通方法部署不上去(好比我用了google guice時,我就部署不上去,不知道有沒有其餘辦法),因此我把app放到tomcat裏,做爲一個獨立應用上傳到cloud foundry。可是這樣我沒辦法讓cloud foundry自動幫我綁定一個數據庫,因此我想了如下辦法去鏈接數據庫。 html

我部署上去的應用在這裏:http://gentlesummer.cloudfoundry.com java

如下過程用到的是:tomcat6+mysql+jsp。過程的關鍵是:讀取雲環境裏的VCAP_SERVICES變量(數據格式是JSON),這個變量裏包括了鏈接數據庫的關鍵參數:ip、端口、用戶名、密碼等。 mysql

如今假設我已經按照上述教程,把一個tomcat應用服務其改裝好了,也安裝了vmc工具。剩下的步驟是把tomcat push到cloud foundry上,建立一個數據庫服務綁定到剛上傳的應用上,並想辦法取得鏈接mysql的必要參數。 web

把tomcat push到cloud foundry上

在把tomcat push到cloud foundry上以前,咱們如今tomcat的webapps/ROOT目錄裏新建一個jsp文件,假設文件名是test.jsp,文件內容大體以下: sql

<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>My JSP 'MyJsp.jsp' starting page</title>
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->
  </head>
  <body>
  	<%=java.lang.System.getenv("VCAP_SERVICES") %> 
        <span style="color:red;font-size:50px">test</span>
  </body>
</html>


 body內的內容是關鍵。 數據庫

而後,回到tomcat的基目錄,執行命令把tomcat push到cloud foundry上,命令以下圖:    tomcat

咱們打開網址測試一下tomcat是否正常:   app

貌似正常,的確是正常!只是大括號裏沒有內容。下面咱們往大括號裏填寫內容。 框架

建立一個數據庫服務,並綁定到上傳的獨立應用上

 建立服務和綁定服務的過程以下:                                              

服務綁定成功。咱們再刷新一下剛纔打開的那個頁面看看:

發現多了不少內容,咱們把黑色字體所有複製下來,拿到這裏用JSON格式化工具進行格式化,結果以下:              

{
    "mysql-5.1": [
        {
            "name": "testservice", 
            "label": "mysql-5.1", 
            "plan": "free", 
            "tags": [
                "relational", 
                "mysql-5.1", 
                "mysql"
            ], 
            "credentials": {
                "name": "d742c33a4140445ed990c21d51e0bd63d",   /*數據庫名*/
                "hostname": "172.30.48.29",                     /*機器名*/
                "host": "172.30.48.29",                         /*ip地址*/
                "port": 3306,                                   /*端口號*/
                "user": "uviTBqaCTlU5J",                        /*用戶*/
                "username": "uviTBqaCTlU5J",                    /*用戶名*/
                "password": "pLJKolSPQ33jT"                    /*鏈接密碼*/
            }
        }
    ]
}

這是一段JSON格式的數據,裏面包含了數據庫服務的一些信息,應用要鏈接綁定的數據庫的話,以上參數已經足夠了。固然在實際中,咱們並不須要寫個jsp頁面把這些JSON數據返回,再人工進行處理。而是直接在應用裏寫程序,把這些數據解析出來後,就能夠鏈接數據庫了。這裏只是爲了直觀而寫個jsp把數據返回來,作示例。

相關文章
相關標籤/搜索