- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正计划从我的单片服务器架构转换为微服务架构。我一直在根据我的先决条件进行一些研究。
pre-requisits:
1) Spring-Boot Application
2) Build Tool : Maven
3) Create OSGI bundles from my packages
根据我的理解,我希望我的遗产得到保留。我不希望我的项目受到太多干扰。这是我的另外两美分。
1) 容器是开发和部署微服务的好方法,运行容器的工具和平台是管理基于微服务的应用程序的好方法。
所以我热衷于寻找为 Spring-Boot 应用程序提供的容器。 Spring Environment 中发生了很多动荡。 Spring DM关闭后,出现了多个容器提供者的流入。
2) 我不寻求虚拟化,因此不需要 Docker。
主要问题
Which is the best container for OSGI Bundles in Spring?
其他问题
1) Please let me know the nuances between Fabrica8 and Apache Karaf which is apparently based on Felix or Equinox. There's new versions of Karaf coming up and competing with Fabrica8.l Which one is the best?
2) Can Docker or Vert.x. be useful with such requirements.
3) Optional. Please give more insights on the above mentioned frameworks if you will.
最佳答案
OSGI > Java 组件部署
将 Java 模块转换为组件并独立部署它们。
units of resources called bundles
Bundles can export services or run processes
bundle can be expected to have its requirements managed by the container
any valid OSGi bundle can theoretically be installed in any valid OSGi container
is lightweight in the sense that it offers very few services
has little runtime overhead
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)
使用明智(从最高到最低):
OSGi R4 Core Bundle521 > Apache Felixorg.apache.felix » OSGI 容器下的 org.osgi.coreOSGi Service Platform Release 4 核心接口(interface)和类。
Apache Karaf :> 程序集 :> 默认分发 107org.apache.karaf » OSGI 容器下的 apache-karafApache Karaf :> 程序集 :> 默认分发
Apache Aries 蓝图 Bundle84org.apache.aries.blueprint » OSGI 容器下的 org.apache.aries.blueprint该 bundle 包含独立实现以及 API。它由 blueprint-api、blueprint-core 和 blueprint-cm 模块组成。
Osgi4 > Apache Equinoxorg.eclipse.equinox » OSGI容器下的osgi
OSGI > 使用
Modular architecture reduces complexity
allows for better changeability
parallel development
reuse and flexibility
reducing time and expenses for development and maintenance
OSGI 容器 > 函数
install new bundles
start them
stop them
uninstall them
check their dependencies
check registered services
number of other things
executes the container's boot process
each container has a different startup environment
each container has slightly different capabilities
OSGI 容器 > bundle
container is running
each bundle consists of one or more Java packages
each bundle has a MANIGEST file
the Packages and Manifest file are bundled into a JAR
First bundle has an id of "0"
ID is used to control the bundle's lifecycle.
bundle provides a lifecycle and exported service
OSGi bundle requires an "activator"
"Activator" manages the lifecycle of the bundle
at least one of bundle contains an Activator
a feature is a set of bundles that provide a particular facility.
OSGI 容器 > 生命周期
starting
stopping
updating
or removing bundles and downloading of management policies
remotely and via an API
OSGI 容器 > 服务
services can be provided by one bundle to another bundle dynamically
service registry allows bundles to detect the addition of new services, or the removal of services, and adapt accordingly.
Apache Karaf
Karaf bundles are platform-specific because Karaf uses native-code libraries
Starts simply by unpacking the distribution bundle into any convenient directory
Apache Karaf > 命令
操作系统:列表
osgi:安装文件:/path/to/my/bundle.jar
osgi:开始[id]
osgi:停止[id]
osgi:卸载[id]
查找类 [类名]
关于java - Fabrica8、Vert.x、Karaf、Felix、Equinox、Spring DM 和 Fuse 以及 Docker 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36913462/
我是 OSGi 的新手,开始使用 felix。我目前非常精通捆绑包、服务等的概念。我有一个要求,可以将 Felix 嵌入到 Tomcat 中,我尝试使用谷歌搜索,但无法找到适合我的目的的相关解决方案。
如果我检测到我在开发环境中运行,我想自动调用 Karaf“dev:watch”命令。我考虑过将 dev:watch * 直接添加到 etc/shell.init.script 但我不希望它无条件运行。
我有一个捆绑组件, package ipojo; import ipojo.service.Hello; import org.apache.felix.ipojo.annotations.Compo
我使用 apache felix,我想连接 osgi 框架并控制它 - 特别是停止。换句话说,我有应用程序 A(基于 osgi)和应用程序 B。我希望从 B 连接到正在运行的 A 并停止 osgi。我
这个问题已经有答案了: 已关闭10 年前。 Possible Duplicate: Find the dependent bundles in Eclipse at runtime 如何从更新的 bu
是否可以在 felix 的 war bundle 中使用 spring?我在 glassfish 3.1 上使用 spring 3.0.5 和 felix 我尝试输入component-scan在 f
有没有关于如何配置/安装 Apache Felix File install 的示例?在官网上,已经提到你需要配置属性等。但是他们没有提到你需要把这些配置属性放在哪里,如何设置等等。 我已下载 org
我正在为我的 OSGi 项目使用 Felix Framework,但我遇到了有关第三方依赖项的严重问题。 我正在使用 eclipse 和 maven-bundle-plugin 从源生成我的包,并从
我已经下载了org.apache.felix.main.distribution-4.2.1。它正在工作。 现在我想使用org.apache.felix.fileinstall-3.2.6.jar。我
在基于依赖管理器的组件模型中,我试图将组件的所有样板文件隐藏到基类中。我在 eclipse+bndtools 中连接了所有东西,并且可以成功地将 @Init、@Start、@Stop 推送到我的基类中
我在我的项目中使用 scr 注释。有人能解释一下 @Component 注释中元类型属性的用例吗? import org.apache.felix.scr.annotations.Activate;
我有一些应用程序,使用了 Felix OSGi Framework。 更新后如何查看 bundle ? 即我有很多 bundle ,并且所有 bundle 都已加载。我可以更新包目录中的一些包。我如何
我正在开发 Apache Sling WCMS 应用程序。我需要过滤发送到服务器的所有请求并在响应对象中设置一些 header 。我根据 Felix Http Filter Sample 实现了过滤器
我使用 Felix 作为嵌入式应用程序,如下所述, How to start and use Apache Felix from code? 。我想要做的是通过 OSGi 从我的主机应用程序动态加载
无法将包加载到 felix 中。我下载了Felix 6.0.1,运行使用 > java -jar bin/felix.jar ____________________________ Welcome
我有一个包含许多 bundle 的应用程序。事实证明,我需要使用来自可能的 bundle 的导入,并且我从 Maven 收到警告, bundle 依赖项中的三个是循环。 The projects in
我希望使用 Apache Felix 进行一些开发,我很好奇我应该使用什么 Linux 发行版。据我所知,它在 Ubuntu 上受支持,这是一个好的起点吗?或者它甚至重要吗? 最佳答案 这并不重要,因
我使用 Apache Felix 和 Glassfish 工作了几个月。我可以创建简单的 Web 应用程序。现在我必须创建基于 OSGI 架构的 Java 守护进程。是否有任何带有示例代码的好教程可以
Felix有哪些包我需要开始吗? downloads page 上有无数个. (附注:与 OSGI 的“Oscar”引用框架相比,这个名称是对 Odd Couple + 的引用吗?这是我在阅读其中一个
我无法从代码中找到有关开始和使用Apache Felix的信息。 我想用 Apache Felix 的 Shell 做我能够(或不能 ;))的事情。 例如,我如何启动一个模块? 请帮忙。 最佳答案 因
我是一名优秀的程序员,十分优秀!