我正在設置生產中的Lagom應用程序。我曾嘗試聯繫Lightbend獲得ConductR許可證,但很久沒有收到回覆。所以,現在我正在尋找一種替代方法。我有很多問題。由於現在應用程序的規模相當小,我認爲現在使用靜態服務定位器對我很有用(對其他選擇開放)。另外,我使用MySQL作爲事件存儲而不是Cassandra的默認配置(原因與此線程無關)。在生產中運行Lagom
爲了抑制卡桑德拉和Lagom的服務定位器,我已經添加以下行到我的build.sbt:
lagomCassandraEnabled in ThisBuild := false
我還增加了以下的一段我application.conf與服務1-implement執行模塊。
lagom.services {
service1 = "http://0.0.0.0:8080"
}
對於開發環境,我已經能夠在TMUX會話使用sbt runAll
成功運行我的應用程序。使用此配置,沒有服務定位器在默認的8000端口上運行,但我可以單獨在8080端口上運行service1。 (不知道這是否是預期的行爲。評論?)
我運行sbt dist
創建一個zip文件,然後解壓縮並運行可執行文件。有趣的是,該zip是在service1-impl文件夾內創建的。那麼,如果我有多個模塊(服務?),是否會爲每個服務創建單獨的zip文件?
當我運行通過sbt dist
創建的可執行文件時,它會嘗試連接到Cassandra並啓動一個服務定位器並忽略我添加的靜態服務定位器配置。基本上,它看起來像忽略了我添加到build.sbt的行。任何人都可以解釋這一點?
最後,如果集羣中有2個服務,service1和service2以及2個節點,節點1運行service1和node2運行這兩個服務,那麼我的靜態服務定位器在application.conf中的外觀應該如何並且由於每個服務都有自己的application.conf,我是否需要複製相同的配置wrt所有application.confs中的靜態服務定位器?
會是這樣的嗎?
lagom.services {
service1 = "http://0.0.0.0:8080"
service1 = "http://1.2.3.4:8080"
service2 = "http://1.2.3.4:8081"
}
由於每個具體的演員會在某個節點上產生了,如何將它與該服務定位器配置工作?
此外,我不想在生產中的tmux會話中運行此。在生產中最終運行此代碼的最佳方式是什麼?
愛德華 - 我看沒有提到在網站上自由層的。你可以說得更詳細點嗎? –
@TimPigden你是對的。目前尚不可用。現在正在開發所需的許可證模塊。我們絕對會宣佈一個免費層級,允許多達3個代理商在今年春天充分使用堆棧。 –
差不多準備好了! http://conductr.lightbend.com/docs/2.1.x/ReleaseNotes#Free_Licensing –