2015-09-29 17 views
1
  1. 我有一個運行postgres的馬拉松應用程序。 [即。 db-instance]
  2. 我還有另一個應用程序在馬拉松上運行,它需要使用jdbc屬性文件中的數據庫URL連接到第一個應用程序。 [viz app-instance]

這兩個都是碼頭化的。 當馬拉松旋出「db-instance」時,它會在集羣中的不同從節點上啓動。通過jdbc獲取連接到馬拉松應用程序的URL

那麼,如何指定在「應用實例」的JDBC URL,以便它能夠連接到「DB-實例」

回答

1

您可以使用Mesos DNS這一點。通過這種方式,您不僅可以指定app-instance中的host:port連接到db-instance,而且還可以指定名稱。通過Marathon啓動的每個應用程序都會得到一個名稱,如db-instance.marathon.mesos,這樣您就不需要打擾IP地址,但可以指定db連接字符串,如db-instance.marathon.mesos:port

希望這會有所幫助。

+0

你測試過了嗎? AFAIU客戶端需要知道和理解SRV記錄才能獲得主機和端口的db容器 –

+0

是的,我使用的是mesos-dns和類似的東西,https://github.com/CiscoCloud/mesos-consul。只要您將這些服務設置爲主DNS服務器,客戶端就不需要知道和理解SRV記錄。你可以閱讀如何做到這一點https://mesosphere.github.io/mesos-dns/docs/ – serejja

+0

仍然需要'硬編碼'在你的例子中的端口是不可取的 –

相關問題