【问题标题】:Difference between Fabrica8, Vert.x , Karaf, Felix , Equinox, Spring DM and Fuse and DockerFabrica8、Vert.x、Karaf、Felix、Equinox、Spring DM 和 Fuse 和 Docker 之间的区别
【发布时间】:2016-08-23 03:31:04
【问题描述】:

我计划从我的单体服务器架构转换为微服务架构。我一直在根据我的先决条件进行一些研究。

先决条件:

1) Spring-Boot 应用程序

2) 构建工具:Maven

3) 从我的包中创建 OSGI 包

根据我的理解,我希望保留我的继承权。我不希望我的项目受到太多干扰。这里还有两分钱。

1) 容器是开发和部署微服务的好方法,运行容器的工具和平台是管理基于微服务的应用程序的好方法。

所以我热衷于寻找为 Spring-Boot 应用程序提供的容器。 Spring 环境发生了很多动荡。 Spring DM 关闭后,涌入了多个容器提供者。

2) 我不是在寻找虚拟化,因此不需要 Docker。


主要问题

哪个是 Spring 中最好的 OSGI Bundles 容器?


其他问题

1) 请告诉我Fabrica8Apache Karaf 之间的细微差别,这显然是基于Felix 或Equinox。有 新版本的 Karaf 即将推出并与 Fabrica8.l 竞争 一个是最好的?

2) Docker 或Vert.x. 能否满足此类要求。

3) 可选。请对上述内容提供更多见解 框架,如果你愿意的话。

【问题讨论】:

  • 所以你基本上是在要求为你做研究?
  • 只是为了将来,如果您要求人们不要投反对票,他们可能会投反对票。话虽如此,我在这里并没有真正看到问题,除非您要求我们比较与网站无关的不同产品、库或插件。
  • 您能否建议我在哪里发布问题。这是世界各地非常真实和普遍的误解。我想摆脱混乱。一般来说,人们确实有一个现成的估算者,或者愿意全面回答他们的答案的人可以提供一些启示。不过感谢您的评论。
  • 每个 stackexchange 站点都有一个帮助中心。例如这里是SO。我想说一个人通常推荐比较的是超级用户。我个人没有使用过该 SE 网站,因此您需要查看他们的帮助中心进行确认。如果在查看帮助中心后仍不清楚,我建议在该 SE 的元站点中发布。在那里,人们可以告诉你它是话题还是话题。
  • 你也可以去 Meta StackExchange 看看可以在哪里提问。他们可能有反映这一点的标签。

标签: java spring maven containers microservices


【解决方案1】:

OSGI > Java 组件部署

将 Java 模块转换为组件并独立部署。

称为捆绑包的资源单位

Bundles 可以导出服务或运行进程

可以预期捆绑包的需求由容器管理

理论上任何有效的 OSGi 包都可以安装在任何有效的 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 核心捆绑包521 > Apache Felix org.apache.felix » OSGI Containers 下的 org.osgi.core OSGi 服务平台第 4 版核心接口和类。

  2. Apache Karaf :> 程序集 :> 默认分布 107 org.apache.karaf » OSGI 容器下的 apache-karaf Apache Karaf :> 程序集 :> 默认分布

  3. Apache Aries 蓝图 Bundle84 org.apache.aries.blueprint » OSGI Containers 下的 org.apache.aries.blueprint 此捆绑包包含独立实现以及 API。它由blueprint-api、blueprint-core和blueprint-cm模块组成。

  4. Osgi4 > Apache Equinox org.eclipse.equinox » OSGI Containers下的osgi

OSGI > 用途

模块化架构降低了复杂性

允许更好的可变性

并行开发

重用性和灵活性

减少开发和维护的时间和费用

OSGI 容器 > 函数

安装新的捆绑包

启动它们

阻止他们

卸载它们

检查它们的依赖关系

检查注册的服务

其他东西的数量

执行容器的启动过程

每个容器都有不同的启动环境

每个容器的功能略有不同

OSGI 容器 > 捆绑包

容器正在运行

每个包都包含一个或多个 Java 包

每个包都有一个 MANIGEST 文件

Packages 和 Manifest 文件被捆绑到一个 JAR 中

第一个包的 id 为“0”

ID 用于控制包的生命周期。

bundle 提供生命周期和导出服务

OSGi 包需要一个“激活器”

“激活器”管理包的生命周期

至少有一个 bundle 包含一个 Activator

功能是一组提供特定功能的捆绑包。

OSGI 容器 > 生命周期

开始

停止

更新

或删除捆绑包并下载管理策略

远程和通过 API

OSGI 容器 > 服务

服务可以由一个捆绑包动态地提供给另一个捆绑包

服务注册表允许捆绑包检测新服务的添加或服务的删除,并进行相应调整。

阿帕奇卡拉夫

Karaf 包是特定于平台的,因为 Karaf 使用本机代码库

只需将分发包解压到任何方便的目录即可开始

Apache Karaf > 命令

osgi:列表

osgi:安装文件:/path/to/my/bundle.jar

osgi:start [id]

osgi:stop [id]

osgi:卸载 [id]

查找类 [class_name]

【讨论】:

    猜你喜欢
    • 2010-12-09
    • 2016-07-16
    • 2014-06-25
    • 2017-05-31
    • 1970-01-01
    • 2010-11-04
    • 2019-01-14
    • 2017-10-24
    相关资源
    最近更新 更多