日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 前端技术 > javascript >内容正文

javascript

cloud foundry_将Spring Boot应用程序绑定到Cloud Foundry中的服务的方法

發(fā)布時(shí)間:2023/12/3 javascript 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 cloud foundry_将Spring Boot应用程序绑定到Cloud Foundry中的服务的方法 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

cloud foundry

如果要試用Cloud Foundry ,最簡(jiǎn)單的方法是下載出色的PCF開(kāi)發(fā)人員或在Pivotal Web Services站點(diǎn)上創(chuàng)建試用帳戶。

其余文章假定您已經(jīng)安裝了Cloud Foundry,并且對(duì)Cloud Foundry有了較高的了解。 這篇文章的目的是列出將Java應(yīng)用程序集成到服務(wù)實(shí)例時(shí)可以使用的選項(xiàng)–該演示使用mysql作為示例服務(wù)進(jìn)行集成,但是這種方法足夠通用。

應(yīng)用概述

該應(yīng)用程序是相當(dāng)簡(jiǎn)單的Spring-Boot應(yīng)用程序,它是一個(gè)REST服務(wù),它公開(kāi)了三種域類型及其之間的關(guān)系,代表了大學(xué)–課程,教師和學(xué)生。 域?qū)嵗龑⒈4娴組ySQL數(shù)據(jù)庫(kù)中。 如果您想繼續(xù)前進(jìn),可以在github上找到整個(gè)源代碼和方法。

要在本地嘗試該應(yīng)用程序,請(qǐng)首先在具有自制軟件的Mac OSX盒子上安裝本地mysql服務(wù)器數(shù)據(jù)庫(kù),然后可以運(yùn)行以下命令集:

brew install mysqlmysql.server start mysql -u root # on the mysql prompt: CREATE USER 'univadmin'@'localhost' IDENTIFIED BY 'univadmin'; CREATE DATABASE univdb; GRANT ALL ON univdb.* TO 'univadmin'@'localhost';

在cf-db-services-sample-auto下調(diào)出Spring-Boot:

mvn spring-boot:run

帶有示例數(shù)據(jù)的端點(diǎn)將在http:// localhost:8080 / courses上提供。

在Cloud Foundry上嘗試此應(yīng)用程序

如果您在本地運(yùn)行PCF Dev的安裝,則可以通過(guò)以下方式嘗試部署應(yīng)用程序:

cf api api.local.pcfdev.io --skip-ssl-validation cf login # login with admin/admin credentials

創(chuàng)建一個(gè)Mysql服務(wù)實(shí)例:

cf create-service p-mysql 512mb mydb

并推送應(yīng)用! (manifest.yml提供了應(yīng)用程序與服務(wù)實(shí)例的綁定)

cf push

端點(diǎn)應(yīng)該位于http://cf-db-services-sample-auto.local.pcfdev.io/courses

服務(wù)連通性的方法

現(xiàn)在我們有了一個(gè)可以在本地運(yùn)行并在示例本地Cloud Foundry上運(yùn)行的應(yīng)用程序,這些就是連接到服務(wù)實(shí)例的方法。

方法1 –不執(zhí)行任何操作,讓Java buildpack處理連接詳細(xì)信息

cf-db-services-sample-auto項(xiàng)目中演示了此方法。 在這里,已經(jīng)使用Spring Boot指定了到本地?cái)?shù)據(jù)庫(kù)的連接,如下所示:

---spring:jpa:show-sql: truehibernate.ddl-auto: nonedatabase: MYSQLdatasource:driverClassName: com.mysql.jdbc.Driverurl: jdbc:mysql://localhost/univdb?autoReconnect=true&useSSL=falseusername: univadminpassword: univadmin

使用Java Buildpack將此應(yīng)用程序推送到Cloud Foundry時(shí),一個(gè)名為java-buildpack-auto-reconfiguration的組件被注入到應(yīng)用程序中,該組件根據(jù)運(yùn)行時(shí)服務(wù)綁定重新配置與服務(wù)的連接。

方法2 –禁用自動(dòng)重新配置并使用運(yùn)行時(shí)屬性

cf-db-services-sample-props項(xiàng)目中演示了此方法。 當(dāng)服務(wù)綁定到應(yīng)用程序時(shí),在鍵“ VCAP_SERVICES”下將一組環(huán)境屬性注入到應(yīng)用程序中。 對(duì)于此特定服務(wù),該條目看起來(lái)類似于以下幾行:

"VCAP_SERVICES": {"p-mysql": [{"credentials": {"hostname": "mysql.local.pcfdev.io","jdbcUrl": "jdbc:mysql://mysql.local.pcfdev.io:3306/cf_456d9e1e_e31e_43bc_8e94_f8793dffdad5?user=**\u0026password=***","name": "cf_456d9e1e_e31e_43bc_8e94_f8793dffdad5","password": "***","port": 3306,"uri": "mysql://***:***@mysql.local.pcfdev.io:3306/cf_456d9e1e_e31e_43bc_8e94_f8793dffdad5?reconnect=true","username": "***"},"label": "p-mysql","name": "mydb","plan": "512mb","provider": null,"syslog_drain_url": null,"tags": ["mysql"]}]}

原始的json使用起來(lái)有點(diǎn)笨拙,但是Spring Boot會(huì)自動(dòng)將此數(shù)據(jù)轉(zhuǎn)換為一組扁平的屬性,如下所示:

"vcap.services.mydb.plan": "512mb", "vcap.services.mydb.credentials.username": "******", "vcap.services.mydb.credentials.port": "******", "vcap.services.mydb.credentials.jdbcUrl": "******", "vcap.services.mydb.credentials.hostname": "******", "vcap.services.mydb.tags[0]": "mysql", "vcap.services.mydb.credentials.uri": "******", "vcap.services.mydb.tags": "mysql", "vcap.services.mydb.credentials.name": "******", "vcap.services.mydb.label": "p-mysql", "vcap.services.mydb.syslog_drain_url": "", "vcap.services.mydb.provider": "", "vcap.services.mydb.credentials.password": "******", "vcap.services.mydb.name": "mydb",

鑒于此,可以通過(guò)以下方式在Spring Boot應(yīng)用程序中指定與數(shù)據(jù)庫(kù)的連接–在application.yml文件中:

spring:datasource:url: ${vcap.services.mydb.credentials.jdbcUrl}username: ${vcap.services.mydb.credentials.username}password: ${vcap.services.mydb.credentials.password}

不過(guò),有一個(gè)小問(wèn)題是,由于我現(xiàn)在已明確控制指定服務(wù)連接的控制,因此必須禁用運(yùn)行時(shí)java-buildpack-auto-reconfiguration,這可以通過(guò)清單元數(shù)據(jù)來(lái)完成:

--- applications:- name: cf-db-services-sample-propspath: target/cf-db-services-sample-props-1.0.0.RELEASE.jarmemory: 512Menv:JAVA_OPTS: -Djava.security.egd=file:/dev/./urandomSPRING_PROFILES_ACTIVE: cloudservices:- mydbbuildpack: https://github.com/cloudfoundry/java-buildpack.gitenv:JBP_CONFIG_SPRING_AUTO_RECONFIGURATION: '{enabled: false}'

方法3 –使用Spring Cloud連接器

第三種方法是使用出色的Spring Cloud Connectors項(xiàng)目,并且指定服務(wù)連接的配置如下所示,并在cf-db-services-sample-connector子項(xiàng)目中進(jìn)行了演示:

@Configuration @Profile("cloud") public class CloudFoundryDatabaseConfig {@Beanpublic Cloud cloud() {return new CloudFactory().getCloud();}@Beanpublic DataSource dataSource() {DataSource dataSource = cloud().getServiceConnector("mydb", DataSource.class, null);return dataSource;} }

利弊

這些是每種方法的利弊:

方法 優(yōu)點(diǎn) 缺點(diǎn)
方法1 –讓Buildpack處理 1.簡(jiǎn)單,可以在本地運(yùn)行的應(yīng)用程序無(wú)需更改即可在云上運(yùn)行 1.神奇的–對(duì)于不了解基本流程的人,自動(dòng)重新配置可能看起來(lái)很神奇
2.支持的服務(wù)類型數(shù)量非常有限–
例如,如果需要與Cassandra的連接,則自動(dòng)重新配置將不起作用
方法2 –顯式屬性 1.相當(dāng)簡(jiǎn)單。
2.遵循Spring Boot的方法,并使用了一些基于Boot的應(yīng)用程序的最佳實(shí)踐-例如,創(chuàng)建數(shù)據(jù)源連接池的順序是確定的,所有這些最佳實(shí)踐都將使用此方法。
1.必須明確禁用自動(dòng)重新配置
2.需要知道扁平化屬性的外觀
3.可能必須通過(guò)環(huán)境屬性手動(dòng)注入“云”配置文件,以區(qū)分本地開(kāi)發(fā)和云部署 4.很難封裝與較新的服務(wù)類型的連接的可重用性-例如Cassandra或DynamoDB。
方法3 – Spring Cloud連接器 1.易于整合
2.易于添加可重復(fù)使用的集成到較新的服務(wù)類型
1.繞過(guò)Spring Boot連接池邏輯的優(yōu)化。

結(jié)論

我個(gè)人更喜歡采用方法2,因?yàn)樗cSpring Boot的默認(rèn)設(shè)置最接近,而不受方法的不利影響。 如果需要與服務(wù)建立更復(fù)雜的連接,我可能會(huì)采用方法3。

參考資料

斯科特·弗雷德里克 ( Scott Frederick )的Spring音樂(lè)一直是他的常客。

2.我從Ben Hale的pong_matcher_spring樣本中慷慨地借了下來(lái) 。

翻譯自: https://www.javacodegeeks.com/2016/05/approaches-binding-spring-boot-application-service-cloud-foundry.html

cloud foundry

總結(jié)

以上是生活随笔為你收集整理的cloud foundry_将Spring Boot应用程序绑定到Cloud Foundry中的服务的方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。