加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – seda,vm和direct之间有什么区别用camel解释它用一个例子

发布时间:2020-12-15 05:21:56 所属栏目:Java 来源:网络整理
导读:我曾与seda合作并直接和我一起阅读文档.仍然无法想象seda的使用和直接. vm对我来说是新的.请用一个例子解释一下. 解决方法 至少有四种不同的机制,一种Camel路由可以直接将数据传递给另一种. “直接”是指不使用网络或某种形式的中间存储(文件,数据库).可以根
我曾与seda合作并直接和我一起阅读文档.仍然无法想象seda的使用和直接. vm对我来说是新的.请用一个例子解释一下.

解决方法

至少有四种不同的机制,一种Camel路由可以直接将数据传递给另一种. “直接”是指不使用网络或某种形式的中间存储(文件,数据库).可以根据它们是否可以在CamelContext实例之间传递数据以及它们是同步还是异步来对这些机制进行分组.

> direct – 单个CamelContext,同步(块生成器)
> SEDA – 单个CamelContext,异步(不阻止生产者)
> VM – 多个CamelContext,异步(不阻止生产者)
> direct-VM – 多个CamelContext,同步(块生成器)

直接和直接VM机制是同步的,因为生成端点阻塞直到消耗端点以及其路由逻辑的所有其余部分完成. SEDA和VM机制都使用消费者上的线程池,这样生产者发出的每个请求都被分配给池中的一个线程.这允许消费者端点及其相关的路由逻辑独立于生产者行动.

在不同Camel上下文之间进行通信的情况下,两个VM端点都是必需的.在许多情况下,可以将路由组合到相同的CamelContext中.但是,出于模块化或不可能的原因,它有时可能是不可取的,因为某些应用程序框架就是如此.例如,我可能在库(或组件)中实现一些Camel路由逻辑,目的是让库被其他代码使用.为了完整,这个库可能会定义一个包含各种路由的自包含CamelContext.如果我想调用库中的Camel逻辑,我将需要使用VM或Direct-VM,因为直接和SEDA端点不包含在Camel上下文之间路由所需的逻辑.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读