1

我正在使用Hibernate开发 Java 应用程序。我想将它部署在Elastic Beanstalk(亚马逊网络服务)上,以便能够相应地扩展。

RDS 是我要使用的数据库。

但是,我不知道如何将我的配置设置提供给 Elastic Beanstalk。显然,现在可以,无需创建 AMI 并将此 AMI 用于每个新服务器(自动缩放时)。

我用 :

  • 休眠.cfg.xml
  • server.xml(链接到 hibernate.cfg.xml)

但我想轻松扩展,所以没有“EC2 实例的手动配置”来输入这些文件。那么如何在没有这两个文件的情况下将这些设置提供给我的应用程序呢?

如何使用这些信息在 Elastic Beanstalk 上进行部署?

4

2 回答 2

2

Amazon Relational Database Service (RDS) 是一种用于在云中设置关系数据库的 Web 服务。RDS支持MySQL、Oracle、SqlServer等关系型数据库引擎。对于 MySQL,更改 hibernate.cfg.xml 如下

<session-factory>
    <property name="dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>
    <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
    <property
name="connection.url">jdbc:mysql://my_sports_entertainment_db_url/news</property>
    <property name="connection.username">my_username</property>
    <property name="connection.password">my_password</property>
  </session-factory>

另请查看如何以最小的应用程序影响从 MySQL“切换”到 Amazon RDS?

于 2012-12-29T15:54:16.767 回答
0

我可以看到一种方法来做到这一点,但它并不漂亮。

您的实例配置文件可以包含容器命令。它们在容器和应用程序安装之后、应用程序启动之前运行。此时,可以编辑 Tomcatcontext.xml文件以添加数据源。您需要添加的文本是通常的数据源配置。您的问题是您必须从脚本中执行此操作。最简单的事情可能是编写配置并将其与您的应用程序一起交付,然后使用容器命令应用强大的sed将其拼接到context.xml.

您还有一个问题,即您需要编写的实际配置必须包括诸如 RDS 的主机名、用户名和密码之类的内容,而在开发过程中您将不会拥有这些内容。AWS 确实通过系统属性将这些暴露给 Java ,因此信息必须在机器上的某个地方。如果你能找到它,你可以在拼接到context.xml.

虽然这可能是可能的,但正如我所说,它并不漂亮。感觉就像一个黑客。必须有更好的方法来做到这一点。

于 2012-12-29T19:38:00.737 回答