1

我使用Hibernate的一個 Java應用程序的工作。 我想將其部署到Elastic Beanstalk(亞馬遜網絡服務),以便能夠相應地進行擴展。Hibernate配置的彈性魔豆(AWS)

RDS是我想要使用的數據庫。

不過,我不知道怎麼給我的配置設置彈性魔豆。顯然,現在有可能無需創建AMI併爲每臺新服務器使用AMI(自動調節時)。

我用:

  • 的hibernate.cfg.xml
  • server.xml中(鏈接到hibernate.cfg.xml)

但我想輕鬆地擴展,所以沒有「手冊配置EC2實例「來輸入這些文件。 那麼如何在沒有這兩個文件的情況下將這些設置提供給我的應用程序呢?

如何在Elastic Beanstalk上部署這些信息?

+0

我讀過的東西表明,這樣做的方法是自定義AMI,所以你有一個數據源通過JNDI可用。然後,您可以爲所有自動調整的實例使用該AMI。是什麼讓你說「顯然現在有可能,而不必創建AMI」? –

+0

我在上一期新聞通訊中閱讀了這篇文章:「使用配置文件,您可以在您的環境中的Amazon EC2實例上配置軟件,而無需創建自定義AMI。「 也許我誤解了意思 – Antoine

+0

該簡報中應該包含一句話,其中寫着:」要了解有關環境資源的更多信息,請訪問AWS Elastic Beanstalk開發人員指南。「。該鏈接指向[定製環境資源]( http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/environment-resources.html),其中解釋瞭如何配置AWS資源(如隊列和警報),這不是關於如何配置自己的應用程序,可悲的是 –

回答

2

亞馬遜關係數據庫服務(RDS)是一個Web服務在雲中建立的關係數據庫。 RDS支持關係數據庫引擎,例如MySQL,Oracle,SqlServer。對於MySQL改變像下面

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

的hibernate.cfg.xml的同時檢查How to 'switch' from MySQL to Amazon RDS with minimal application impact?

+0

MySQL。 我使用我的應用程序與本地mysql db。Id喜歡使用RDS,只是配置設置需要休眠,我不喜歡不知道在何處添加它們(hibernate.cfg.xml) – Antoine

+1

但我應該在哪裏輸入hibernate.cfg.xml?我希望我的應用程序具有可伸縮性並自動使用多個實例。我不想手動訪問EC2實例來輸入server.xml – Antoine

0

我可以看到一個辦法做到這一點,但它是不漂亮。

實例配置文件可以包括container commands。這些應用程序在安裝容器和應用程序之後運行,但在應用程序啓動之前運行。此時,可以編輯Tomcat context.xml文件來添加數據源。您需要添加的文字是the usual datasource configuration。你的問題是你必須從腳本中完成。最簡單的可能是編寫配置並將其與應用程序一起交付,然後使用容器命令應用強大的sed將其拼接到context.xml

你必須在實際的配置,你需要編寫必須包括像主機名,用戶名和密碼RDS,你不會在開發過程中有另一個問題。 AWS通過system properties將這些信息公開給Java,因此信息必須位於機器的某個位置。如果你能找到它,你可以在將它拼接到context.xml時將它混合到配置中。

雖然這是可能的,正如我所說的,這是不漂亮。這感覺就像一個黑客。必須有更好的方式來做到這一點。

+0

好的謝謝。我會看看那個。 或去我自己的AMI :( – Antoine