我正在评估我团队的中间件的选项。我们确实有一个弗兰肯斯坦式的设置。我们正在使用 Apache ServiceMix(Karaf/ActiveMQ/CXF)、Websphere 8.5、ActiveMQ,但我们并不真正需要它,并且我们所有的应用程序都没有真正编码为在主节点出现故障时故障转移到另一个节点。我们意识到我们的设置存在问题,现在希望进行改进。
我们目前在 Karaf 容器中托管 bundle (不确定它们是否全部符合 OSGI),这些 bundle 在通过 Apache Camel 从 Websphere 发送 JMS 消息后通过 ActiveMQ 使用。
我目前的想法是终止 ActiveMQ,使所有 Camel 路由都指向 HTTP(而不是 JMS 队列),并将我们的数据包/服务转换为通过 Apache CXF(在某些方面替换 websphere)而不是 ActiveMQ 通过 HTTP 提供服务队列/JMS。但是,我们有 Websphere 许可证,而且我确实知道它以某种方式支持 bundle ,我只是不太熟悉它是如何工作的(与 karaf 性质相同)?
主要问题在标题中,我希望它不要太笼统。
最佳答案
WebSphere 8.5 是一个完整的 OSGi 容器,支持 Blueprint,就像 Karaf 一样。
理论上,您可以在 WAS8.5 中运行您的 Camel 包或类似的东西。然而,Apache Karaf 比 WebSphere 更适合运行 ActiveMQ/CXF/Camel 东西。 Karaf 中的安装需要几个命令,而在 WAS85 中安装和配置 Camel feauters 和基本的camel 路线的困难是.. 好吧,当我上次尝试时,这是一个头疼的问题。 Others seems to have the same struggle 。
我在 WebSphere Application Server 中运行 Camel 应用程序有相当好的经验,但那是通过将 Camel 嵌入到标准 Web 应用程序中,而不是使用 OSGi 的东西。因此,对于在 WebSphere 中运行 Camel,我建议使用嵌入式 Web 应用程序。
对于“用 HTTP 替换 AMQ/JMS”部分。你知道你正在用苹果代替梨,对吧? JMS 具有许多 HTTP 所没有的功能(与 HTTP 相比还有一些开销)。为了完整起见,WebSphere 还内置了一个 JMS 提供程序。因此,如果您有一个大型 HA 保护的 WebSphere 基础设施,那么 WebSphere (SIBus) 提供程序可能是一个不错的选择。否则,ActiveMQ 会很不稳定:-)
关于websphere - Websphere 和 Karaf 之间的捆绑容器有何区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23542382/