我们目前使用 JavaServiceWrapper 在 Windows 上运行服务器端 Java 应用程序,这对我们来说是一个很好的解决方案。我们有少量基于 Spring 的轻量级应用程序。
但现在我们需要考虑在我们的服务中引入一些模块化。为此,我一直在考虑 OSGi。
我需要知道哪些 OSGi 容器适合在中等负载环境中的黄金时段生产使用?
- Eclipse Equinox 3.5.x
- Knopflerfish 3.x
- Apache Felix 2.x
- 还要别的吗?
答案1
除了列出的框架之外,另外两个突出的实现是门房和ProSyst mBedded 服务器,尽管它们都是面向移动和嵌入式使用。
对于服务器端工作,直接在独立 OSGi 框架上构建的替代方法是使用增值发行版,例如阿帕奇卡拉夫,日食处女座或者帕雷默斯·尼布尔(我在 Nimble 工作)。
理解这一点的一个有用方法是将 Equinox、Felix 和 Knopflerfish 等框架实现视为与 Linux 或 BSD 内核等操作系统内核类似,将 Karaf、Virgo 和 Nimble 视为与 Ubuntu 和 Suse 等操作系统发行版类似。对于 Unix,大多数组织采用发行版而不是内核,据我所知,OSGi 似乎也发生了同样的事情。
Karaf、Virgo 和 Nimble 添加到原始 OSGi 框架的额外功能包括:
- 强大的炮弹
- 脚本支持
- ssh 访问
- 捆绑依赖项解析、配置和诊断
- 预配置日志记录
- 支持使用 WAR
- 操作系统集成(作为服务运行的能力)
- 能够轻松在框架之间切换
所有这些项目都在积极开发中,因此要了解每个项目的最新详细信息,最好直接查看它们的网站。