摘要:第章部署應(yīng)用程序的靈活打包選項(xiàng)在部署應(yīng)用程序時(shí)提供了大量的選擇,你可以將應(yīng)用程序部署到各種云平臺(tái)容器映像例如或虛擬真實(shí)機(jī)器上。本節(jié)介紹一些更常見(jiàn)的部署場(chǎng)景。
第VI章. 部署 Spring Boot 應(yīng)用程序
Spring Boot的靈活打包選項(xiàng)在部署應(yīng)用程序時(shí)提供了大量的選擇,你可以將Spring Boot應(yīng)用程序部署到各種云平臺(tái)、容器映像(例如Docker)或虛擬/真實(shí)機(jī)器上。
本節(jié)介紹一些更常見(jiàn)的部署場(chǎng)景。
60. 部署到云Spring Boot的可執(zhí)行jar是為大多數(shù)流行的云PaaS(Platform-as-a-Service)提供者準(zhǔn)備的,這些供應(yīng)商傾向于要求你“自帶容器”,它們管理應(yīng)用程序進(jìn)程(不是專(zhuān)門(mén)的Java應(yīng)用程序),因此,他們需要一個(gè)中間層,使你的應(yīng)用程序適應(yīng)云的運(yùn)行進(jìn)程理念。
兩家受歡迎的云服務(wù)提供商Heroku和cloud Foundry采用了“buildpack”的方法,“buildpack”將你部署的代碼封裝到任何需要啟動(dòng)應(yīng)用程序的地方,它可能是一個(gè)JDK和一個(gè)對(duì)java的調(diào)用,一個(gè)嵌入式web服務(wù)器,或者一個(gè)成熟的應(yīng)用服務(wù)器。buildpack是可插拔的,但理想情況下,你應(yīng)該能夠通過(guò)盡可能少的自定義來(lái)獲取它,這將減少不受你控制的功能的占用,它將開(kāi)發(fā)和生產(chǎn)環(huán)境之間的差異最小化。
理想情況下,你的應(yīng)用程序,就像Spring Boot的可執(zhí)行jar,擁有它需要在其中運(yùn)行的所有東西。
在本節(jié)中,我們將討論如何獲得在開(kāi)始章節(jié)我們開(kāi)發(fā)的簡(jiǎn)單應(yīng)用程序,并在云中運(yùn)行。
60.1 Cloud Foundry如果沒(méi)有指定其他的buildpack, Cloud Foundry提供了默認(rèn)的buildpack,Cloud Foundry的Java buildpack對(duì)Spring應(yīng)用程序(包括Spring Boot)有很好的支持,你可以部署獨(dú)立的可執(zhí)行的jar應(yīng)用程序和傳統(tǒng)的.war打包應(yīng)用程序。
一旦你構(gòu)建了應(yīng)用程序(例如,通過(guò)使用mvn clean package)并安裝了cf命令行工具,就可以使用cf push命令部署應(yīng)用程序,將路徑替換為已編譯的.jar。在推送應(yīng)用程序之前,確定已經(jīng)登錄了cf命令行客戶(hù)端。下面的行顯示使用cf push命令來(lái)部署應(yīng)用程序:
$ cf push acloudyspringtime -p target/demo-0.0.1-SNAPSHOT.jar
在前面的示例中,我們將acloudyspringtime替換為您提供的cf作為應(yīng)用程序名稱(chēng)的任何值。
更多選項(xiàng)見(jiàn)cf push文檔,如果一個(gè)Cloud Foundry的manifest.yml文件存在同一目錄,它將被認(rèn)可。
此時(shí),cf開(kāi)始上傳你的應(yīng)用程序,產(chǎn)生類(lèi)似以下示例的輸出:
Uploading acloudyspringtime... OK Preparing to start acloudyspringtime... OK -----> Downloaded app package (8.9M) -----> Java Buildpack Version: v3.12 (offline) | https://github.com/cloudfoundry/java- buildpack.git#6f25b7e -----> Downloading Open Jdk JRE 1.8.0_121 from https://java-buildpack.cloudfoundry.org/openjdk/ trusty/x86_64/openjdk-1.8.0_121.tar.gz (found in cache) Expanding Open Jdk JRE to .java-buildpack/open_jdk_jre (1.6s) -----> Downloading Open JDK Like Memory Calculator 2.0.2_RELEASE from https://java- buildpack.cloudfoundry.org/memory-calculator/trusty/x86_64/memory-calculator-2.0.2_RELEASE.tar.gz (found in cache) Memory Settings: -Xss349K -Xmx681574K -XX:MaxMetaspaceSize=104857K -Xms681574K - XX:MetaspaceSize=104857K -----> Downloading Container Certificate Trust Store 1.0.0_RELEASE from https://java- buildpack.cloudfoundry.org/container-certificate-trust-store/container-certificate-trust- store-1.0.0_RELEASE.jar (found in cache) Adding certificates to .java-buildpack/container_certificate_trust_store/truststore.jks (0.6s) -----> Downloading Spring Auto Reconfiguration 1.10.0_RELEASE from https://java- buildpack.cloudfoundry.org/auto-reconfiguration/auto-reconfiguration-1.10.0_RELEASE.jar (found in cache) Checking status of app "acloudyspringtime"... 0 of 1 instances running (1 starting) ... 0 of 1 instances running (1 starting) ... 0 of 1 instances running (1 starting) ... 1 of 1 instances running (1 running) App started
恭喜你!應(yīng)用程序現(xiàn)在是存活的!
一旦你的應(yīng)用程序被激活,你可以使用cf apps命令來(lái)驗(yàn)證已部署應(yīng)用程序的狀態(tài),如下面的示例所示:
$ cf apps Getting applications in ... OK name requested state instances memory disk urls ... acloudyspringtime started 1/1 512M 1G acloudyspringtime.cfapps.io ...
一旦Cloud Foundry承認(rèn)你的應(yīng)用程序已被部署,你應(yīng)該能夠在給定的URI中找到應(yīng)用程序,在前面的示例中,你可以在http://acloudyspringtime.cfapps.io/中找到它。
60.1.1 綁定到服務(wù)默認(rèn)情況下,關(guān)于正在運(yùn)行的應(yīng)用程序和服務(wù)連接信息的元數(shù)據(jù)將被作為環(huán)境變量公開(kāi)(例如:$VCAP_SERVICES),這個(gè)架構(gòu)的決定是由于Cloud Foundry的多種語(yǔ)言性質(zhì)(任何語(yǔ)言和平臺(tái)都可以作為一個(gè)buildpack來(lái)支持),進(jìn)程范圍的環(huán)境變量是語(yǔ)言無(wú)關(guān)的。
環(huán)境變量并不總是適合最簡(jiǎn)單的API,因此,Spring Boot會(huì)自動(dòng)提取它們并將數(shù)據(jù)壓縮到可以通過(guò)Spring的Environment抽象訪問(wèn)的屬性中,如下面的示例所示:
@Component class MyBean implements EnvironmentAware { private String instanceId; @Override public void setEnvironment(Environment environment) { this.instanceId = environment.getProperty("vcap.application.instance_id"); } // ... }
所有的Cloud Foundry屬性都以vcap為前綴,可以使用vcap屬性訪問(wèn)應(yīng)用程序信息(例如應(yīng)用程序的公共URL)和服務(wù)信息(如數(shù)據(jù)庫(kù)證書(shū)),有關(guān)詳細(xì)信息,請(qǐng)參閱“CloudFoundryVcapEnvironmentPostProcessor”Javadoc。
Spring Cloud Connectors項(xiàng)目更適合于配置數(shù)據(jù)源等任務(wù),Spring Boot包括自動(dòng)配置支持和spring-boot-starter-cloud-connectors啟動(dòng)器。60.2 Heroku
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/71183.html
摘要:參考指南使你可以輕松地創(chuàng)建可運(yùn)行的獨(dú)立的生產(chǎn)級(jí)的基于的應(yīng)用程序,我們對(duì)平臺(tái)和第三方庫(kù)有自己的看法,這樣你就可以以最低限度工作開(kāi)始了,大多數(shù)應(yīng)用程序都需要很少的配置。文檔本節(jié)簡(jiǎn)要概述了參考文檔,它充當(dāng)文檔其余部分的映射。 Spring Boot 參考指南 Spring Boot使你可以輕松地創(chuàng)建可運(yùn)行的獨(dú)立的、生產(chǎn)級(jí)的基于Spring的應(yīng)用程序,我們對(duì)Spring平臺(tái)和第三方庫(kù)有自己的看...
摘要:關(guān)于文檔參考指南可用如下方式最新的副本可以在中找到。嘗試操作文檔,它們?yōu)樽畛R?jiàn)的問(wèn)題提供解決方案。學(xué)習(xí)基礎(chǔ),構(gòu)建在許多其他項(xiàng)目上,網(wǎng)站提供豐富的參考文檔,如果你要從開(kāi)始,嘗試其中一個(gè)指南。我們對(duì)進(jìn)行監(jiān)視,以解決帶有標(biāo)記的問(wèn)題。 1. 關(guān)于文檔 Spring Boot 參考指南可用如下方式: HTML PDF EPUB 最新的副本可以在 docs.spring.io/spring-b...
摘要:我們的主要目標(biāo)是為所有開(kāi)發(fā)提供一個(gè)非??斓膹V泛可訪問(wèn)的入門(mén)體驗(yàn)。要跳出固有的思維模式,但是當(dāng)需求開(kāi)始偏離默認(rèn)設(shè)置時(shí),要迅速避開(kāi)。提供大型項(xiàng)目如嵌入式服務(wù)器安全性指標(biāo)健康檢查和外部化配置所共有的一系列非功能特性。系統(tǒng)要求需要或和或以上。 8. Spring Boot介紹 Spring Boot使你可以輕松地創(chuàng)建可運(yùn)行的獨(dú)立的、生產(chǎn)級(jí)的基于Spring的應(yīng)用程序,我們對(duì)Spring平臺(tái)和第...
摘要:使用事務(wù)管理器是支持的一個(gè)流行的開(kāi)源事務(wù)管理器實(shí)現(xiàn),你可以使用啟動(dòng)器向項(xiàng)目添加適當(dāng)?shù)囊蕾?lài)項(xiàng),與和一樣,將自動(dòng)配置并對(duì)進(jìn)行后處理,以確保啟動(dòng)和關(guān)閉順序是正確的。 37. 用JTA分布式事務(wù) 通過(guò)使用Atomikos或Bitronix嵌入式事務(wù)管理器,Spring Boot支持跨多個(gè)XA資源的分布式JTA事務(wù),在部署到合適的Java EE應(yīng)用服務(wù)器時(shí)也支持JTA事務(wù)。 當(dāng)檢測(cè)到JTA環(huán)境時(shí)...
摘要:一旦最基本的應(yīng)用創(chuàng)建好了,你可以給他加上安全防護(hù)。一旦成功登出了,我們的應(yīng)用程序重定向到到并顯示相應(yīng)的登陸成功的消息。這標(biāo)記該應(yīng)用程序是一個(gè)應(yīng)用程序,并激活一些關(guān)鍵行為,比如創(chuàng)建一個(gè)。一旦應(yīng)用程序啟動(dòng),用瀏覽器訪問(wèn)。 原網(wǎng)頁(yè) https://spring.io/guides/gs/securing-web/ 本指南將引導(dǎo)您完成創(chuàng)建一個(gè)資源由Spring Security的保護(hù)的一個(gè)簡(jiǎn)單...
閱讀 2353·2021-09-29 09:42
閱讀 593·2021-09-06 15:02
閱讀 2650·2021-09-02 15:40
閱讀 2147·2019-08-30 14:23
閱讀 1898·2019-08-30 13:48
閱讀 1315·2019-08-26 12:01
閱讀 992·2019-08-26 11:53
閱讀 2177·2019-08-23 18:31