2016-04-28 41 views
1

我打算將我的Monolithic Server Architecture轉換爲Microservice Architecture。我一直在根據我的先決條件進行一些研究。Fabrica8,Vert.x,Karaf,Felix,Equinox,Spring DM和保險絲和Docker之間的區別

預requisits:

1)彈簧引導應用程序

2)構建工具:Maven的

3)從我的包創建OSGi bundle了

基於我的理解,我希望我的繼承得到維護。我不想在我的項目中出現很多中斷。這裏還有兩分錢。

1)容器是開發和部署微服務的好方法,運行容器的工具和平臺是管理基於微服務的應用程序的好方法。

所以我很想找到爲Spring-Boot應用程序提供的容器。春季環境中出現了很多動盪。在春季DM閉幕後,有多個集裝箱供應商涌入。

2)我不是在尋找虛擬化,因此不需要Docker。


主要問題

這是OSGi包春最好的容器?


其他問題

1)請讓我知道這顯然是基於Felix或春分Fabrica8Apache Karaf之間的細微差別。有 卡拉夫的新版本即將與Fabrica8.l競爭。其中 是最好的?

2)Docker或Vert.x.可以滿足這些要求。

3)可選。如果您願意,請提供關於上述 框架的更多見解。

+0

所以你基本上是要求你爲你做研究嗎? – kromit

+0

只是爲了未來,如果你問人們不要downvote,他們可能會倒下。話雖如此,除非您要求我們比較不同的產品,圖書館或插件,而這些內容與網站的主題無關,否則我並不真正在這裏看到一個問題。 – Lexi

+0

你可以請我建議我應該在哪裏發佈問題。這是世界各地非常真實和普遍的誤解。我想擺脫困惑。一般來說,人們確實擁有一個準備好的recknoner,或者願意全面瞭解他們的答案的人可以闡明一些看法。儘管感謝您的評論。 – technazi

回答

2

OSGI> Java組件部署

轉換的Java模塊在組件中,獨立進行部署。

單位的資源稱爲束

Bundle能提供服務或運行的進程

束可以預期有其要求的

任何合法的bundle理論上都可以安裝在容器管理在任何有效的OSGi容器中

是輕量級的,因爲它提供了很少的服務

具有很小的運行時開銷

OSGi Container > Implementations > 

OSGi Release 4 Core Framework 
| | | 
| | | 
| | |Core Open Source Implementations 
| |    | 
| |    | 
| |    | 
| |    |Apache Felix 
| |    |Eclipse Equinox (Eclipse IDE is built on this.) 
| |    |Knopflerfish 
| | 
| | 
| |OSGi runtime environment (wraps an OSGi Core and provide developers with a simple interface to manage their OSGi applications) 
|    | 
|    | 
|    | 
|    |Apache Karaf (Felix Core) 
|    |Eclipse Virgo (Equinox Core) 
| 
| 
| 
|Dependency Injection Framework for OSGI 
      | 
      | 
      | 
      |Blueprint (Blueprint support the dynamic nature of OSGi services by describing how the components get instantiated and wired together) 

用法懷斯(最高到最低):

  1. 的OSGi R4核心Bundle521>阿帕奇菲利克斯 org.apache.felix»org.osgi OSGI容器下的.core OSGi服務平臺版本4核心接口和類。

  2. 阿帕奇Karaf:>裝配體:>默認Distribution107 org.apache.karaf»Apache的karaf下OSGI容器 阿帕奇Karaf:>裝配體:>默認分配

  3. 阿帕奇白羊藍圖Bundle84 org.apache .aries.blueprint»OSGI容器下的org.apache.aries.blueprint 此捆綁包包含獨立實現以及API。它由blueprint-api,blueprint-core和blueprint-cm模塊組成。

  4. osgi4> Apache Equinox org.eclipse。下OSGI容器

OSGI>春分»OSGi的用途

模塊化結構降低了複雜性

允許更好的可變性

並行開發

重用和靈活性

減少時間和費用開發和維護

OSGi容器>功能

安裝新的捆綁

開始他們

阻止他們

卸載它們

檢查它們的依賴

檢查登記服務

一些其他的事情

運行這些容器的啓動過程

每個容器都有不同的啓動環境

容器的功能稍有不同

OSGI容器>束

容器運行

每個束由一個或多個Java包

每個束具有MANIGEST文件

的軟件包的和Manifest文件捆綁到一個JAR中

第一個包的ID爲「0」

ID用於控制包的生命週期。

束提供了生命週期和服務

OSGi包需要「活化劑」

「活化劑」管理包的生命週期

至少束中的一個包含活化劑

一個特徵是一組提供特定設施的包。

OSGI容器>生命週期

開始

停止

更新

或刪除管理政策的束和下載

遠程且經由API

OSGi容器>服務

服務可以由一個束被提供到另一束動態

服務註冊表允許束,以檢測添加新服務或移除服務,並相應調整。

的Apache Karaf

Karaf束是特定於平臺的,因爲Karaf使用本機代碼庫

開始簡單地通過拆包分佈束到任何方便的目錄

Apache Karaf>命令

的OSGi:列表

的OSGi:安裝文件:/path/to/my/bundle.jar

的OSGi:啓動[ID]

的OSGi:停止[ID]

osgi:uninstall [id]

find-class [class_name]