2017-04-14 63 views
-1

我是云世界的新手。我正在使用云代工厂将我的战争文件部署到PAAS云。 我的应用程序不是弹簧引导应用程序。 我的应用程序还连接到外部数据库。如何为运行在云上的应用程序配置外部数据库

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

回答

0

你不能让tomcat构建包来决定任何数据库设置。构建包只是一种定义应用程序的运行时依赖关系的方法,如java tomcat等。

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

例如 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 

如果你这样做,然后按下应用到Cloud Foundry,然后在运行时应用程序可以找到数据库的属性(如URL,用户名,密码等)在名为VCAP_SERVICES系统环境变量。

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

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

春雨云项目下的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服务,该服务稍后可用于创建服务并绑定到应用程序。

相关问题