2015-05-02 42 views
-1

您好所有的項目微服務架構,如何通過Spring框架的引導

我試圖找出如何基於在Wildfly運行的模塊(war's)移動我目前的系統架構。現在,所有的infra資源都放置在JNDI樹中,比如Datasources,JMS等等。我的項目框架是Spring 4和family,它允許我查找這些資源和其他東西。

我的目標是使用Spring-Boot和Spring Cloud Netflix創建一個微服務體系結構,其中每個WAR都將是一個由總線服務集成的新獨立應用程序。

但我的疑問是,如何與所有單一的Spring Boot應用程序共享那些Jndi數據源,牢記在每個application.properties中必須爲每個應用程序/數據源設置用戶/密碼並不好。

有沒有什麼辦法讓Spring Boot管理所有的子項目,因爲最大的好處是有一個應用程序在一個端口上運行,另一個在另一個端口上運行,所以如果有任何問題發生,例如Wildfly wouldn不要阻止所有這些,因爲現在的架構中發生了什麼。

(春季啓動)+(春季雲)+(對所有項目執行一次JNDI樹)(他們之間的獨立模塊)+

讓我知道你的想法!

謝謝...

+0

春季啓動背後的想法是基於微服務(在我看來)與雲組件你有差異的方式來整合你的服務使用脂肪罐 –

回答

3

春季雲有一個名爲Spring Cloud Config模塊,這是正是出於這個目的。配置服務器允許您集中定義您的配置,並且每個微服務自動獲取此配置(並在必要時刷新它)。關於單個JNDI樹,我認爲這與微服務的體系結構有點矛盾。由於每個微服務都有其自己的數據庫,因此每個微服務只配置一個數據源,因此在application.properties或配置服務器中配置它沒有太多的開銷。

+0

談到微服務模型,你的意思是當我有一個數據庫應該我將所有服務集中到一個Spring引導應用程序中?在我看來,我可以使用任何Spring Boot應用程序來表示一個功能,因此它可以指向同一個數據庫。在這種情況下,許多項目可能會共享相同的數據源,是不是? – Ofbizbrazil

+0

如果您有一個要用於所有微服務的數據庫,則必須問自己,每個服務是否確實提供了單一功能,並且如果將您的應用程序分離爲微服務,確實爲您提供了可伸縮性和可用性等優勢。但是這是一個難題,在這樣的平臺上不容易討論。 – dunni

+0

假設我真的想要有很多指向同一個數據庫的Spring Boot應用程序,我該如何解決它?我的意思是,因爲每個應用程序將有不同的http端口,當我在Wildfly中部署相同的http端口時會有所不同。將戰爭從Wildfly分散到Spring Boot應用程序,會給我一個不同的範例來管理和保持服務器的安全,但另一方面,管理infra資源會變得更加困難。這就是我的意思,如何保持管理方面的輕鬆。 – Ofbizbrazil