Java Fabrica8、Vert.x、Karaf、Felix、Equinox、Spring DM和Fuse与Docker之间的差异

Java Fabrica8、Vert.x、Karaf、Felix、Equinox、Spring DM和Fuse与Docker之间的差异,java,spring,maven,containers,microservices,Java,Spring,Maven,Containers,Microservices,我计划将我的单片服务器架构转换为微服务架构。我一直在根据我的先决条件做一些研究 先决条件: 1) Spring启动应用程序 2) 构建工具:Maven 3) 从我的包创建OSGI包 根据我的理解,我希望我的继承权得到维护。我不想在我的项目中有太多的干扰。我这边还有两分钱 1)容器是开发和部署微服务的好方法,运行容器的工具和平台是管理基于微服务的应用程序的好方法。 所以我很想找到为Spring Boot应用程序提供的容器。春天的环境中有很多湍流。Spring DM关闭后,有多个容器提供者流入 2)

我计划将我的单片服务器架构转换为微服务架构。我一直在根据我的先决条件做一些研究

先决条件:

1) Spring启动应用程序

2) 构建工具:Maven

3) 从我的包创建OSGI包

根据我的理解,我希望我的继承权得到维护。我不想在我的项目中有太多的干扰。我这边还有两分钱

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

所以我很想找到为Spring Boot应用程序提供的容器。春天的环境中有很多湍流。Spring DM关闭后,有多个容器提供者流入

2)我不寻求虚拟化,因此不需要Docker。


主要问题

哪一个是春季OSGI捆绑包的最佳容器?


其他问题

1) 请让我知道和之间的细微差别,这显然是基于或春分。有 Karaf的新版本即将问世,并与Fabric8.l竞争 一个是最好的

2) Docker或Docker可以满足这些要求

3) 可选。请就上述问题提供更多见解 如果你愿意的话


OSGI>Java组件部署

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

称为bundle的资源单元

捆绑包可以导出服务或运行进程

可以预期bundle的需求由容器管理

理论上,任何有效的OSGi捆绑包都可以安装在任何有效的OSGi容器中

在提供很少服务的意义上,它是轻量级的

几乎没有运行时开销

使用方式(从高到低):

  • OSGi R4核心捆绑包521>ApacheFelix org.apache.felix»osgi容器下的org.osgi.core OSGi服务平台发布4个核心接口和类

  • ApacheKaraf:>程序集:>默认分发107 org.apache.karaf»OSGI容器下的apache karaf ApacheKaraf:>程序集:>默认发行版

  • Apache Aries Blueprint Bundle84 org.apache.aries.blueprint»OSGI容器下的org.apache.aries.blueprint 此捆绑包包含独立实现以及API。它由blueprint api、blueprint核心和blueprint cm模块组成

  • Osgi4>ApacheEquinox org.eclipse.equinox»osgi容器下的osgi

  • OSGI>使用

    模块化体系结构降低了复杂性

    允许更好的可变性

    并行开发

    重用和灵活性

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

    OSGI容器>功能

    安装新的捆绑包

    启动它们

    阻止他们

    卸载它们

    检查它们的依赖关系

    检查注册服务

    其他事情的数量

    执行容器的启动过程

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

    每个容器的功能略有不同

    OSGI容器>捆绑包

    集装箱正在运行

    每个包由一个或多个Java包组成

    每个包都有一个最大的文件

    包和清单文件被捆绑到一个JAR中

    第一个捆绑包的id为“0”

    ID用于控制捆绑包的生命周期

    捆绑包提供了生命周期和导出的服务

    OSGi捆绑包需要一个“激活器”

    “Activator”管理捆绑包的生命周期

    至少有一个包包含激活器

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

    OSGI容器>生命周期

    开始

    停止

    更新

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

    远程和通过API

    OSGI容器>服务

    服务可以由一个bundle动态地提供给另一个bundle

    ServiceRegistry允许bundle检测新服务的添加或服务的删除,并相应地进行调整

    Apache-Karaf

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

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

    Apache-Karaf>命令

    osgi:列表

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

    osgi:start[id]

    osgi:stop[id]

    osgi:卸载[id]


    查找类[class_name]

    所以你基本上是要求为你做研究?只是为了将来,如果你要求人们不要投反对票,他们可能会投反对票。话虽如此,我在这里并没有看到任何问题,除非你要求我们比较不同的产品、库或插件,而这些都不是网站的主题。你能建议我在哪里发布这个问题吗。这是全世界非常真实和普遍的误解。我想摆脱这种困惑。一般来说,人们确实有一个现成的记录者,或者愿意全面了解他们的答案的人可以提供一些信息。谢谢您的评论。每个stackexchange站点都有一个帮助中心。举个例子。我想说的是,人们通常推荐的一种比较方法是超级用户。I h
    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)