在上一个项目中,我能够使用 direct:vm组件,我认为这是解决我的任务的最佳组件。不幸的是,现在我无法使用它,因为我仅限于 ServiceMix 的 Camel 版本,即 2.6.0-fuse-00-00,所以我找到了规范化消息路由器 ( NMR )。我发现NMR默认是异步的,但是可以通过参数synchronous设置为同步。使用它代替 direct:vm 组件仍然是一个好的解决方案吗?我将它与 enrich 一起使用组件,我没有发现任何问题。
最佳答案
在 OSGi 环境中,每个包都与其他包完全分开。 NMR
组件允许 bundle 使用 ServiceMix 中的此功能将 Camel 路由作为资源公开给容器中的其他 bundle 。 direct-vm
组件直到 Camel 2.10 才引入,因此对于您的版本,NMR
组件是最合适的。它仍然被认为是轻量级的,但比直接公开路由功能更丰富。它仍然比使用 JBI 技术更好,后者应该被视为遗留技术。
关于java - Apache Camel 中 Camel Context 之间的同步通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30777406/