小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Spring Roo 簡(jiǎn)介,第 4 部分: 用 Spring Roo 和 Cloud Fo...

 richsky 2012-04-22

Spring Roo 簡(jiǎn)介,第 4 部分: 用 Spring Roo 和 Cloud Foundry 在云中快速開(kāi)發(fā)應(yīng)用程序

Shekhar Gulati, 高級(jí)顧問(wèn), Xebia

簡(jiǎn)介: 通過(guò) VMWare 創(chuàng)建的第一個(gè)開(kāi)放的 “平臺(tái)即服務(wù) (platform as a service)” 項(xiàng)目 Cloud Foundry,創(chuàng)建能夠在云內(nèi)使用的應(yīng)用程序,這使得 Roo 快速應(yīng)用程序開(kāi)發(fā)又向前邁進(jìn)了一步。了解有關(guān)此環(huán)境的更多信息,然后,使用 Roo shell 將應(yīng)用程序部署到 Cloud Foundry。

查看本系列更多內(nèi)容

本文的標(biāo)簽:  spring

發(fā)布日期: 2012 年 1 月 09 日
級(jí)別: 初級(jí) 原創(chuàng)語(yǔ)言: 英文
訪問(wèn)情況 : 3116 次瀏覽
評(píng)論: 0 (查看 | 添加評(píng)論 - 登錄)

平均分 5 星 共 1 個(gè)評(píng)分 平均分 (1個(gè)評(píng)分)
為本文評(píng)分

在本 “Spring Roo 簡(jiǎn)介” 系列文章的 第 1 部分第 2 部分 中,我們 使用 Spring Roo 從頭開(kāi)始構(gòu)建了一個(gè)功能完整的企業(yè)應(yīng)用程序。在那時(shí),我曾打算寫(xiě)一篇關(guān)于 Spring Roo 與 Google App Engine 平臺(tái)即服務(wù) (PaaS) 集成的文章。Spring Roo 支持可部署在 Google App Engine 上的 Web 應(yīng)用程序的構(gòu)建,但是因?yàn)榇嬖谝恍﹩?wèn)題和限制,使部署我們之前構(gòu)建的應(yīng)用程序比較困難。我于是決定將這篇文章推遲到 Spring Roo/Google App 集成支持有所改進(jìn)之后。本文簡(jiǎn)單介紹了 Cloud Foundry(開(kāi)放的平臺(tái)即服務(wù)),以及如何使用它來(lái)部署示例應(yīng)用程序。在討論 Cloud Foundry 之前,讓我們先花些時(shí)間了解一下 “平臺(tái)即服務(wù)”。

什么是 platform as a service?

平臺(tái)即服務(wù) (PaaS) 是云計(jì)算層中的一層。其他的層還包括軟件即服務(wù) (SaaS) 和基礎(chǔ)架構(gòu)即服務(wù) (IaaS)。PaaS 位于 SaaS 和 IaaS 之間,提供了基礎(chǔ)架構(gòu)的抽象,并提供了一個(gè)計(jì)算平臺(tái)和一個(gè)解決方案堆棧。


圖 1. 平臺(tái)即服務(wù):云計(jì)算架構(gòu)的戰(zhàn)略中心
此圖顯示了應(yīng)用程序基礎(chǔ)架構(gòu) (PaaS) 層位于系統(tǒng)基礎(chǔ)架構(gòu) (IaaS) 層和應(yīng)用程序 (SaaS) 層之間。

PaaS 適合于業(yè)務(wù)和專業(yè)開(kāi)發(fā)人員。不編寫(xiě)代碼的業(yè)務(wù)開(kāi)發(fā)人員可以使用像 WaveMaker 這樣的平臺(tái)來(lái)開(kāi)發(fā)包含拖放組件的應(yīng)用程序,而專業(yè)的開(kāi)發(fā)人員可以使用像 Google App Engine 這樣的平臺(tái)構(gòu)建和部署 Web 應(yīng)用程序。PaaS 具有一些設(shè)施,可用這些設(shè)施來(lái)支持構(gòu)建和交付 Web 應(yīng)用程序與服務(wù)的端到端的生命周期。一些主要的 PaaS 提供商有 Google App Engine for Java? and Python、Microsoft? Azure for .Net and Java 以及 Force.com。

直到 2010 年,PaaS 的發(fā)展速度都未趕上 SaaS 和 IaaS,可能是受已有 PaaS 解決方案的限制。那么,讓我們先來(lái)看看已有的 PaaS 存在的一些問(wèn)題,這些問(wèn)題是下一代 PaaS 平臺(tái)(比如 Cloud Foundry)應(yīng)該解決的。

已有的 PaaS 解決方案存在的一些問(wèn)題

  • 供應(yīng)商鎖定(缺乏云的可移植性):沒(méi)有為開(kāi)發(fā)人員或組織提供從一個(gè)云轉(zhuǎn)到另一個(gè)云的選項(xiàng)。比如,如果一個(gè)開(kāi)發(fā)人員選擇了 Google App Engine,那么他們必須一直使用 Google App Engine,除非此應(yīng)用程序通過(guò) Google App Engine 控制臺(tái)刪除 Google App Engine,并且讓現(xiàn)有應(yīng)用程序按照新的云提供商的要求進(jìn)行修改。而此應(yīng)用程序之后必須部署在此處。
  • 只可部署到公共云:大多數(shù)現(xiàn)有 PaaS 解決方案都以公共云為目標(biāo),這導(dǎo)致了很多企業(yè)都不打算轉(zhuǎn)至 PaaS。目前,許多企業(yè)永遠(yuǎn)都不會(huì)轉(zhuǎn)至公共云,而且它們也沒(méi)有在現(xiàn)有基礎(chǔ)架構(gòu)上設(shè)置私有云或組合使用私有與公共云的選項(xiàng)。
  • 滯后的思維方式:開(kāi)發(fā)人員必須更改在公共云上構(gòu)建應(yīng)用程序的思維方式。之前,Google App Engine 并未提供關(guān)系數(shù)據(jù)庫(kù)的選項(xiàng)。應(yīng)用程序必須針對(duì) BigTable 進(jìn)行編碼,因此在構(gòu)建開(kāi)始之前,需要先在思維方式上有所轉(zhuǎn)變,而且已經(jīng)有了與之相關(guān)的學(xué)習(xí)曲線。開(kāi)發(fā)人員可以在沒(méi)有任何修改的情況下將應(yīng)用程序 WAR 文件部署到云內(nèi)。
  • 對(duì)稀松框架的支持:目前,Java 程序員大都使用框架,而且?guī)捉?100% 的框架支持都會(huì)引入一些編寫(xiě)應(yīng)用程序方面的難題。使用任何像 Spring 或 Struts 這樣的常見(jiàn)框架,通過(guò) Google App Engine 構(gòu)建一個(gè)簡(jiǎn)單的應(yīng)用程序,這常常需要使用一些技巧進(jìn)行處理,然后才能使用該框架。
  • 束縛于某個(gè)特定的環(huán)境:已有的 PaaS 解決方案多限制于特定的環(huán)境,比如 Java 和 Python 使用 BigTable 作為 Google App Engine 的后端,.Net 和 Java 要求對(duì) Microsoft Azure 使用 SQL Azure 數(shù)據(jù)庫(kù),對(duì) Amazon Beanstalk 使用 Java。 使用任何這些 PaaS 都只要求在該環(huán)境下能正常存在。
  • 非開(kāi)源:已有的 PaaS 解決方案沒(méi)有一個(gè)是開(kāi)源的,這就讓開(kāi)發(fā)人員很難衍生代碼并添加對(duì)供社區(qū)分享的新特性的支持。Cloud Foundry 的一個(gè)引入注目的元素是它的開(kāi)源特性,該特性使得組織之外的開(kāi)發(fā)人員也能對(duì)其成功起到主要作用。

2011 – PaaS 之年

Gartner 說(shuō)過(guò) 2011 將是 “平臺(tái)即服務(wù)” 之年。這可歸因于領(lǐng)先的企業(yè)軟件提供商引入了大量新的 PaaS 產(chǎn)品。目前已發(fā)布的 PaaS 產(chǎn)品有 VMWare 的 Cloud Foundry、RedHat 的 OpenShift、CloudBees 和 DotCloud。(參閱 參考資料,獲得所有這些產(chǎn)品的更多信息。)這些新的 PaaS 產(chǎn)品不會(huì)局限于一種語(yǔ)言或框架。現(xiàn)在,PaaS 已經(jīng)真正成為了一種能支持使用多種語(yǔ)言和框架構(gòu)建應(yīng)用程序的平臺(tái)。像 Cloud Foundry 這樣的 PaaS 產(chǎn)品則更上了一個(gè)臺(tái)階,因?yàn)樗С侄鄠€(gè)云,我們將在本文的稍候部分對(duì)此進(jìn)行討論。這些改變會(huì)迫使已有的 PaaS 解決方案也成為多框架的。接下來(lái),我們將重點(diǎn)討論 Cloud Foundry,其他的 PaaS 產(chǎn)品不在本文的討論范圍之內(nèi)。

什么是 Cloud Foundry?

在 2011 年 4 月,VMWare 發(fā)布了一個(gè)開(kāi)放的平臺(tái)即服務(wù)項(xiàng)目,名為 Cloud Foundry。Cloud Foundry 是一種多語(yǔ)言、多框架、多應(yīng)用服務(wù)和多個(gè)云的開(kāi)源平臺(tái)。它試圖解決之前所列出的已有 PaaS 解決方案中存在的問(wèn)題。開(kāi)發(fā)人員或組織可以使用 Cloud Foundry 作為部署目標(biāo),即可部署到由 Cloud Foundry 提供的一個(gè)公共云,也可將它用作為一層,從而允許部署到所選擇的云(公共云和私有云)。Cloud Foundry 有三個(gè)關(guān)鍵特性:

  1. 在所有層上的選擇:一言以蔽之,Cloud Foundry 是一個(gè) PaaS 提供選項(xiàng)。給開(kāi)發(fā)人員提供的選擇并不限于編程語(yǔ)言,而是可以應(yīng)用于所有的層(服務(wù)和云)。 圖 2 所示的圖表是對(duì) Cloud Foundry 的一個(gè)很好的描述。

    圖 2. Cloud Foundry 選擇
    此屏幕快照顯示了應(yīng)用程序平臺(tái)、服務(wù)接口以及云提供者接口之間的三角關(guān)系。

    在圖 2 中,可以看到此三角型所有三個(gè)頂點(diǎn)上的選擇。第一個(gè)頂點(diǎn)面向的是語(yǔ)言/運(yùn)行時(shí)和框架。目前,Cloud Foundry 支持 Java、Groovy、Scala、Ruby 和 Node.js 語(yǔ)言。面向這些語(yǔ)言的受支持框架包括 Rails3、Grails、Node、Sinatra、Lift 和 Spring。第二個(gè)頂點(diǎn)對(duì)應(yīng)于應(yīng)用程序服務(wù),開(kāi)箱即用的可用服務(wù)有 MySQL(關(guān)系數(shù)據(jù)庫(kù))、Redis(鍵值數(shù)據(jù)倉(cāng)庫(kù))和 MongoDB(文檔數(shù)據(jù)倉(cāng)庫(kù))。不久的將來(lái)還會(huì)提供對(duì) RabbitMQ 和其他服務(wù)的支持。Cloud Foundry 為開(kāi)發(fā)人員提供了使用 SQL 或 NoSQL 數(shù)據(jù)庫(kù)的選擇。僅僅掌握 MySQL 和 Java 的開(kāi)發(fā)人員不必學(xué)習(xí)任何新東西,即可使用現(xiàn)有知識(shí)構(gòu)建一個(gè)應(yīng)用程序或部署已有的應(yīng)用程序。第三個(gè)頂點(diǎn)顯示的是云的選擇。Cloud Foundry 可部署在一個(gè)公共云上,比如 上目前可用的公共云,也可以將 Cloud Foundry 部署于 IaaS 上,比如 Amazon EC2。還可以將 Cloud Foundry 下載并部署到您組織的私有云上,開(kāi)發(fā)人員甚至可以將 Cloud Foundry 安裝到自己的筆記本上,將它用作微云或開(kāi)發(fā)人員云。

  2. 開(kāi)源:Cloud Foundry 是一個(gè)開(kāi)源項(xiàng)目,可在 Github 上找到(參閱 參考資料)。開(kāi)發(fā)人員可以衍生 Cloud Foundry 項(xiàng)目,添加對(duì)新特性的支持或修復(fù)現(xiàn)有問(wèn)題,還可以對(duì)此項(xiàng)目提供自己的貢獻(xiàn)。 一家稱為 ActiveState 的公司已經(jīng)在 Cloud Foundry 上構(gòu)建了自己的面向 Python 和 Perl 的云平臺(tái)(參閱 參考資料)。之所以能夠這樣做完全是因?yàn)?Cloud Foundry 是一個(gè)開(kāi)源項(xiàng)目,開(kāi)發(fā)人員可以向它添加更多的服務(wù)或語(yǔ)言支持。
  3. 云可移植性:由于 Cloud Foundry 是一個(gè)開(kāi)源項(xiàng)目,開(kāi)發(fā)人員或組織擁有按需要運(yùn)行 Cloud Foundry 的自由。RightScale 顯示 Cloud Foundry 可運(yùn)行在 Amazon EC2(參見(jiàn) 參考資料)上。那些不希望使用默認(rèn) Cloud Foundry 公共云的人可轉(zhuǎn)而使用 Cloud Foundry 提供的其他云。

開(kāi)始使用 Cloud Foundry

Cloud Foundry 公共云是作為 http://www./ 處的一個(gè)免費(fèi)服務(wù)提供的。此服務(wù)目前仍未測(cè)試版。尚未獲得 Cloud Foundry 憑證的用戶必須先 注冊(cè)一個(gè)帳戶 后才能開(kāi)始使用 Cloud Foundry 公共云。而收到 Cloud Foundry 憑證通常需要幾天的時(shí)間。公共云目前運(yùn)行于 VMWare vSphere 云操作系統(tǒng)之上。要在收到憑證之前就開(kāi)始使用,可以通過(guò) 下載并安裝 Cloud Foundry 在一臺(tái)機(jī)器上設(shè)立一個(gè)云。

收到 Cloud Foundry 憑證后,可采用三種方式與之進(jìn)行交互。所有客戶端都會(huì)與由 Cloud Foundry 公開(kāi)的 REST API 交互。這些 REST Web 服務(wù)是一些簡(jiǎn)單的 HTTP 上的 json 有效負(fù)荷。

  1. VMC 命令行客戶端:VMC 是一個(gè) ruby gem,它通過(guò)命令行提供對(duì) Cloud Foundry 的訪問(wèn)。可用它來(lái)部署使用各種語(yǔ)言創(chuàng)建的應(yīng)用程序。從 http:///gems/vmc 下載它。
  2. Spring Source Tool Suite(Spring Eclipse IDE 或 STS):STTS 是第二種連接到 Cloud Foundry 的方式。STS 是一個(gè)基于 Eclipse 的 IDE,常常與很多 Spring 產(chǎn)品捆綁在一起。欲了解有關(guān) STS 的更多信息,可以參考 refcard 發(fā)布的 on dzone。訪問(wèn) Cloud Foundry 還需要安裝一個(gè)插件。在這個(gè) IDE 內(nèi),可以進(jìn)行所有的構(gòu)建、測(cè)試和向云的部署。這真酷!您可以從 SpringSource 團(tuán)隊(duì)的博客 更多地了解它。
  3. Spring Roo Cloud Foundry 附加組件:使用 Spring Roo Cloud Foundry 附加組件,應(yīng)用程序可以直接在 Roo shell 內(nèi)部署。對(duì)于 Roo shell 的熱衷者,這意味著將可以從 Roo shell 內(nèi)進(jìn)行構(gòu)建和部署。Roo shell 提供的另一個(gè)好處是 tab 完成。向命令添加幾個(gè)字母,按下 tab 鍵,Roo shell 就會(huì)完成此命令。

現(xiàn)在,我們來(lái)探討 Java 開(kāi)發(fā)人員如何從 Roo shell 訪問(wèn) Cloud Foundry。我們還會(huì)將前兩篇文章中所創(chuàng)建的這個(gè)應(yīng)用程序部署到 Cloud Foundry。

Spring Roo Cloud Foundry 集成

Spring Roo 以附加組件的格式提供了對(duì) Cloud Foundry 的支持。附加組件是一種機(jī)制,Spring Roo 借此提供對(duì)新特性的支持。

前提條件

要用 Spring Roo 向 Cloud Foundry 部署一個(gè)應(yīng)用程序,要遵循如下步驟:

  1. 如果未在您機(jī)器上安裝 Spring Roo,請(qǐng)參考本系列文章的 第 1 部分 開(kāi)始使用 Spring Roo。我使用的是最新版本的 Spring Roo 1.1.5.RELEASE。
  2. 下載會(huì)議應(yīng)用程序的源代碼,參見(jiàn) 下載。該應(yīng)用程序與前兩篇文章中介紹的是同一個(gè)應(yīng)用程序。目前使用 HSQLDB 作為數(shù)據(jù)庫(kù)。我們稍后會(huì)將此應(yīng)用程序移植到 MySQL 數(shù)據(jù)庫(kù)中。

在 Cloud Foundry 上部署簡(jiǎn)單的 HSQLDB 應(yīng)用程序

開(kāi)發(fā)環(huán)境就緒后,就可以部署這個(gè) conference 應(yīng)用程序了。所下載的會(huì)議應(yīng)用程序使用 HSQLDB 作為其數(shù)據(jù)庫(kù)。要將此應(yīng)用程序部署到 Cloud Foundry,可以遵循如下步驟:

  1. 將 conference.zip 解壓縮到一個(gè)適當(dāng)位置。
  2. 從命令行轉(zhuǎn)至 conference.zip 解壓縮的位置。
  3. 通過(guò)在命令行鍵入 mvn clean install 構(gòu)建這個(gè)項(xiàng)目。
  4. 在 conference 目錄內(nèi),激發(fā) Roo 命令來(lái)加載 shell。
  5. 在 Cloud Foundry 上部署此應(yīng)用程序之前,安裝這個(gè) Cloud Foundry 附加組件, 它將提供用來(lái)在 Cloud Foundry 執(zhí)行操作的命令。要安裝此 Cloud Foundry 附加組件,可以在 Roo shell 上鍵入如下命令:
        roo> pgp automatic trust 
    
        roo> addon install bundle --bundleSymbolicName 
            org.springframework.roo.addon.cloud.foundry;1.1.5.RELEASE
    
    

    第一個(gè)命令告訴 Spring Roo 自動(dòng)信任所有 pgp 鍵,以便安裝所有必需的附加組件,避免逐個(gè)信任各個(gè)信任鍵。第二個(gè)命令安裝 Cloud Foundry 附加組件的 1.1.5 RELEASE 版。這個(gè)命令需要一些時(shí)間才能完成,所以請(qǐng)耐心等待。

  6. 安裝完此附加組件后,必須先登錄到 Cloud Foundry 才能執(zhí)行操作。要登錄到 Cloud Foundry,可以在 Roo shell 上鍵入如下命令:
     
                   
         roo> cloud foundry login --email shekhargulati84@gmail.com --password ******
            --cloudControllerUrl http://api.
    
        

    cloud foundry login 命令接受三個(gè)選項(xiàng):email、password 和 cloudControllerUrl。這三者中,email 和 password 是強(qiáng)制性的。cloudControllerUrl 的值默認(rèn)為 http://api. 處的 Cloud Foundry 公共云。若要部署到微云或其他地方的云,指向其 URL 即可。

  7. 要查看用來(lái)訪問(wèn) Cloud Foundry 的所有可用命令,只需鍵入 cloud foundry 并按下 tab 鍵,您就會(huì)看到所有命令。
        roo> cloud foundry <Press Tab>                                                   
    
            cloud foundry bind       cloud foundry clear      cloud foundry create     
     
            cloud foundry delete     cloud foundry deploy     cloud foundry files 
    
            cloud foundry info       cloud foundry list       cloud foundry login      
    
            cloud foundry map        cloud foundry restart    cloud foundry start 
    
            cloud foundry stop       cloud foundry unbind     cloud foundry unmap      
     
            cloud foundry update     cloud foundry view
    
                

  8. 要查看與您的 Cloud Foundry 實(shí)例相關(guān)的信息, 可按如下所示鍵入 info 命令。這個(gè)命令將會(huì)顯示有關(guān)內(nèi)存使用、部署在 Cloud Foundry 上的應(yīng)用程序的數(shù)量以及運(yùn)行的服務(wù)數(shù)量的信息。它還會(huì)顯示最大分配值,即最大內(nèi)存為 2GB。
        roo> cloud foundry info 
            
    	   VMware's Cloud Application Platform 
    	   For support visit support@ 
    
    	   Target:     http://api. (0.999) 
    
    	   User:     shekhargulati84@gmail.com 
    	   Usage:     Memory (0MB of 2048MB total) 
    	   Services (0 of 16 total) 
    	   Apps (0 of 20 total) 
    
                

  9. 接下來(lái),通過(guò)鍵入 cloud foundry deploy 命令部署此應(yīng)用程序。這個(gè)命令需要兩個(gè)必需屬性 appName 和 path。appName 屬性代表的是應(yīng)用程序的名稱,而 path 屬性代表的是 WAR 文件的路徑。沒(méi)有必要輸入此路徑,只需在 path 后按下 tab 鍵,Spring Roo 就會(huì)為您尋找該路徑。此外,還有其他三種非強(qiáng)制屬性:instances、memory 和 urls。默認(rèn)情況下,只啟動(dòng)應(yīng)用程序的一個(gè)實(shí)例,但是通過(guò)使用 instances 屬性來(lái)指定實(shí)例,可以部署此應(yīng)用程序的多個(gè)實(shí)例。分配給實(shí)例的默認(rèn)內(nèi)存大小為 256MB。要更改這個(gè)屬性,在部署時(shí),可以使用 memory 屬性。URL 屬性則可用來(lái)指定映射到此應(yīng)用程序的 URL。默認(rèn)情況下,URL 為 <Application Name>.,在本例中,對(duì)于我們這個(gè)應(yīng)用程序,URL 為 conference. 。鍵入以下命令來(lái)部署這個(gè)會(huì)議應(yīng)用程序
        roo> cloud foundry deploy
             --appName conference --path /target/conference-0.1.0.BUILD-SNAPSHOT.war
    
                 

    path 屬性的值可以是 CREATE,具體情況取決于項(xiàng)目是否使用 Maven 構(gòu)建。如果項(xiàng)目已經(jīng)構(gòu)建,正如本例中所示的那樣,那么就會(huì)看到 war 的路徑。否則,將會(huì)看到 CREATE,它首先構(gòu)建項(xiàng)目,然后部署該應(yīng)用程序。

  10. 所部署的應(yīng)用程序尚未啟動(dòng)。使用如下所示的命令可以啟動(dòng)此應(yīng)用程序。
              
    	cloud foundry start app --appName conference
    
    

  11. http://conference./ 可以查看運(yùn)行中的應(yīng)用程序。

轉(zhuǎn)至產(chǎn)品:用 MySQL 數(shù)據(jù)庫(kù)替代 HSQLDB

從面向本地環(huán)境的 HSQLDB 轉(zhuǎn)換到產(chǎn)品環(huán)境的 MySQL 數(shù)據(jù)庫(kù)十分容易。首先,使用 Roo shell 將 persistence store 從 HSQLDB 改為 MySQL,然后使用 Cloud Foundry 附加組件創(chuàng)建一個(gè) MySQL 服務(wù)并將此服務(wù)綁定到此應(yīng)用程序。代碼沒(méi)有必要更改;唯一要更改的是配置。在機(jī)器上甚至沒(méi)有必要提供 MySQL 數(shù)據(jù)庫(kù),因?yàn)闇y(cè)試可以直接在云內(nèi)完成。Cloud Foundry 使用起來(lái)就像在本地的開(kāi)發(fā)人員機(jī)器上進(jìn)行開(kāi)發(fā)那么輕便。

  1. 打開(kāi) Roo shell,并通過(guò)在 shell 上鍵入如下命令將永久性存儲(chǔ)庫(kù)從 HSQDB 更改到 MySQL。
        persistence setup --database MYSQL --provider HIBERNATE
    
    

    這個(gè)命令將會(huì)更新此 pom.xml、database.properties、persistence.xml 指向 MySQL 的相關(guān)配置。

  2. 打開(kāi)另一個(gè)命令行并執(zhí)行 root 文件夾內(nèi)的 mvn clean install -Dmaven.test.skip=true。請(qǐng)注意我跳過(guò)了測(cè)試,因?yàn)樵谶@個(gè)會(huì)議應(yīng)用程序中,沒(méi)有 MySQL 數(shù)據(jù)庫(kù)。
  3. 構(gòu)建成功后,應(yīng)用程序也就準(zhǔn)備好,可以進(jìn)行部署了。但是,在部署之前,請(qǐng)先刪除此應(yīng)用程序,以便可以為我們的應(yīng)用程序創(chuàng)建一個(gè) MySQL 服務(wù),并重新部署 一個(gè)新的應(yīng)用程序。沒(méi)有必要在每次更改時(shí)都刪除此應(yīng)用程序,因?yàn)檫€可以使用 update 命令更新部署。
            
        cloud foundry delete app --appName conference
    
    

  4. 現(xiàn)在,我們將部署新創(chuàng)建的這個(gè)具有 MySQL 特定配置的 war。
         
    	cloud foundry deploy --appName conference --path 
            /target/conference-0.1.0.BUILD-	SNAPSHOT.war --memory 512MB
    
    

  5. 以上命令可部署這個(gè)應(yīng)用程序,但應(yīng)用程序?qū)嵗形磫?dòng)。所以,在啟動(dòng)此應(yīng)用程序之前,我們需要?jiǎng)?chuàng)建一個(gè) MySQL 服務(wù)并將它綁定到我們的服務(wù)。為了創(chuàng)建一個(gè)新服務(wù),我們使用了 Cloud Foundry create service 命令,并為它提供 serviceName 和 serviceType。serviceType 可以是 MySQL、MongoDB 或 Redis。
    	cloud foundry create service --serviceName conference-db --serviceType mysql
    
                

    服務(wù)創(chuàng)建之后,就可以通過(guò)使用 bind service 命令綁定服務(wù)。bind service 命令確保了 MySQL datasource 依賴關(guān)系在云內(nèi)可得到滿足。在云內(nèi),這又稱為依賴注入。

    	cloud foundry bind service --appName conference --serviceName conference-db
    
    

    我們還可以通過(guò)指定 create service 命令的 appName 屬性來(lái)避免使用 bind service 命令。
    	cloud foundry create service --serviceName conference-db --serviceType mysql
         	--appName conference
    
    

  6. 現(xiàn)在,就可以使用 start 命令來(lái)啟動(dòng)這個(gè)會(huì)議應(yīng)用程序了。在 http://conference./ 處可找到此應(yīng)用程序。
       
                 
    	cloud foundry start app --appName conference
    
                

  7. 最后,通過(guò)執(zhí)行如下所示的 Cloud Foundry list apps 和 list services 命令來(lái)查看應(yīng)用程序和服務(wù)列表。
                    
    roo> cloud foundry list apps                     
    
    ================================= Applications ================================= 
    
    Name        Status    Instances   Services        URLs 
    ----        ------    ---------   --------        ---- 
    conference  STARTED   1           conference-db   conference. 
    
    
    roo> cloud foundry list services 
    
    ================== System Services =================== 
    
    Service     Version     Description 
    -------     -------     ----------- 
    mongodb     1.8         MongoDB NoSQL store 
    redis       2.2         Redis key-value store service 
    mysql       5.1         MySQL database service 
    
    
    
    = Provisioned Services = 
    
    Name              Service 
    ----              ------- 
    conference-db     mysql 
    
                

結(jié)束語(yǔ)

在本文中,我定義了 Cloud Foundry 以及它與其他 PaaS 產(chǎn)品的不同之處。通過(guò)集成 Cloud Foundry 與 Spring Roo,可為開(kāi)發(fā)人員提供從 Roo shell 構(gòu)建和部署 Spring 應(yīng)用程序的快速應(yīng)用程序開(kāi)發(fā)環(huán)境。本文還探討了如何創(chuàng)建一個(gè) MySQL 服務(wù)并將它綁定到某個(gè)應(yīng)用程序。

在后續(xù)文章中,我們將了解 Cloud Foundry 其他服務(wù),比如 Redis 和 MongoDB。


下載

名字大小下載方法
conference.zipHTTP

關(guān)于下載方法的信息


參考資料

學(xué)習(xí)

獲得產(chǎn)品和技術(shù)

  • Cloud Foundry 可從 Github 獲得。

  • IBM 產(chǎn)品評(píng)估試用版軟件,從試用下載到云托管的產(chǎn)品,用面向開(kāi)發(fā)人員的軟件革新您的下一個(gè)開(kāi)源開(kāi)發(fā)項(xiàng)目。

討論

關(guān)于作者

Shekhar Gulati 是 Xebia India 的 Java 顧問(wèn)。他使用 Java 編程語(yǔ)言開(kāi)發(fā)軟件已超過(guò) 5 年。他的私人博客是 http://whyjava.。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多