如何为在云上运行的应用程序配置外部数据库

时间:2017-04-14 16:51:56

标签: cloud war

我是云世界的新手。我正在使用云代工厂将我的war文件部署到PAAS云。 我的应用程序不是spring-boot应用程序。 我的应用程序还连接到外部数据库。

我使用tomcat作为服务器。 如何部署我的war并使java-buildpack tomcat了解数据库配置?

1 个答案:

答案 0 :(得分:0)

您无法使用tomcat构建包来决定任何数据库设置。构建包只是一种定义应用程序的运行时依赖性的方法,如java tomcat等。

要连接到数据库,您需要一个数据库服务。在云代工厂中,每个外部服务(如数据库,mq等)都必须用作服务。 你需要将这些服务绑定到你的应用程序,应用程序可以读取这些属性并从该服务中建立数据源连接。

例如 Pivotal Web服务(run.pivotal.io - 由Pivotal提供的Cloud Foundry)提供了一个名为p-mysql的MYSQL服务。您可以在云代工市场中看到这一点(市场是可以在云代工厂上查看不同服务的地方,cf marketplace命令可用于查看此内容。)

http://docs.pivotal.io/p-mysql/1-8/

这项服务有不同的计划。您可以选择适合您需求的计划。然后你可以使用像mymysqlservice这样的逻辑名在你的云代工厂空间内创建一个p-mysql服务。

然后在应用程序清单中,您可以定义必须绑定到应用程序的服务。

services:
   - mymysqlservice
   - myrabbitmqservice

如果您执行此操作然后将应用程序推送到云代工厂,那么在运行时应用程序可以在名为VCAP_SERVICES的系统环境变量中找到数据库的属性(如URL,用户名,密码等)。

https://docs.run.pivotal.io/devguide/deploy-apps/environment-variable.html#VCAP_SERVICES

可以使用这些属性在应用程序中创建数据源。

Spring云项目下的Spring云云代工项目提供了有用的简便方法来自动发现这些服务并将数据源注入到spring应用程序中。

http://cloud.spring.io/spring-cloud-connectors/spring-cloud-spring-service-connector.html#_relational_database_db2_mysql_oracle_postgresql_sql_server_2

因此,在云代工厂内,每个外部服务都是必须在市场内定义的服务。

如果您有自己的云代工厂部署,那么您需要在云代工厂部署中定义自己的rdbms服务,以后可用于创建服务并绑定到应用程序。