2015-03-02 112 views
7

我找到了一本書「Spring DM in action」。當我開始查看Spring for OSGI的最新版本時,我發現Spring已經停止了這個項目。在Java中創建微服務的正確途徑是什麼? Spring Boot或OSGI

由於我在開發Spring的一些經驗,我想了解我是否應該繼續閱讀Spring和OSGI,或者轉而使用Spring Boot作爲創建模塊化應用程序的方式?

+0

春天DM被稱爲Eclipse的處女座現在。但是,您應該閱讀以下博文:http://blog.osgi.org/2014/09/how-should-i-use-guicespringblueprint.html,如果您想使用OSGi,請將Spring留在技術背後。 – 2015-03-02 10:30:44

+0

謝謝你的回答。我是否正確理解如果我是Spring粉絲,我應該忘記OSGI作爲創建模塊化系統的一種方式,並簡單地在Spring Boot上進行中繼? – 2015-03-02 11:39:29

+0

我也是一位春風扇。它只適用於OSGi。我不認爲你應該忘記OSGi。你不應該一起使用這兩種技術。在OSGi中,使用不同的組件模型(如聲明式服務),該模型旨在在模塊化環境中正常工作。根據我的經驗,這個開關在一開始就很痛苦,但我永遠不會回到基於春天的monoholitic世界。 – 2015-03-02 12:31:24

回答

7

我想寫評論,但它沒有給我足夠的字符。

如果您需要OSGi的模塊化和動態性,Spring DM(現在是Gemini Blueprint)是一項很好的技術。我們用它來創建一個具有插件基礎結構的高性能消息中間件。需要插件基礎架構,因爲客戶希望能夠在運行時通過網頁界面添加/替換/更新模塊和更改路線。每個消息也通過0-N groovy腳本(存儲在db中,可在運行時改變)轉換。處理引擎基於彈簧批次和彈簧集成。

所以,如果你有一個真正的OSGi用例,它可以是一個很好的技術。

但大多數時候人們試圖使用它來分離整體式web應用程序的層次,這是沒有用的,並且給您比利潤更多的工作。一旦我看到一種方法,開發人員使用OSGi將他的領域模型的每個組分成一個小模塊。這會損害您的應用程序設計,而不是您從中獲利,導致利潤爲零。

此外,本書可能是一個不錯的主意,可以爲您提供有關「如何開發」軟件的不同方法。

-1

問題是這些是製作模塊化應用程序的兩個完全不同的概念。

OSGI是一個巨大的系統,遠遠低於啓動或彈簧。它爲您提供了一套用於模塊化應用的不同工具,並在開發過程中設置了非常不同的挑戰。

請閱讀OSGI究竟是什麼,引導是什麼以及它們解決什麼問題。如果閱讀後不知道選擇哪個工具,請參閱Boot。

+0

「啓動」是否意味着春季啓動?與「普通」彈簧應用的模塊化相比,彈簧引導模塊的工作方式有何不同? – 2015-03-02 22:41:35

+0

是的,我的意思是Spring Boot。真的沒有區別。問題是關於Boot,所以我認爲有人正在嘗試新技術或試圖通過擁有大量REST端點來實現模塊化。無論情況如何,至少需要幾天的時間來了解需求和約束條件。 – 2015-03-03 21:07:25

1

的標題問題:「OSGi」肯定。 OSGi服務是微服務綽號的最自然的候選者。

到您的文章的內容:

我在這裏跳了,說:「這兩種。」 OSGi,恕我直言,是發生在Java上的最好的事情,因爲......好吧,也許永遠。爲什麼?它促使你遵循更好的設計實踐,促進生產更小,更模塊化的代碼塊。

我也喜歡spring-boot,但是我發現它更適合於編寫客戶端應用程序(讀取「awesome for」)。

關於你與春天的經歷 - 不要害怕。如果您習慣於使用XML配置,您會發現藍圖語法在大多數情況下是相同的......並且您仍然可以在OSGi槓桿化系統中廣泛使用各種彈簧片。

僅供參考 - 我是從已發展植根於OSGi的幾個大型系統的立場來講(也有幾個進軍典型WAR/servlet的部署的荒野)

相關問題