java – 返回基础知识:Apache Camel路由和直接组件
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 返回基础知识:Apache Camel路由和直接组件,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2008字,纯文字阅读大概需要3分钟。
内容图文
![java – 返回基础知识:Apache Camel路由和直接组件](/upload/InfoBanner/zyjiaocheng/793/5c82e877465d4bc68d47ff700801c106.jpg)
我对Camel路线及其两个端点感到困惑:Direct和Seda.好吧,假设我有这样的路线:
public void configure()
{
from("direct:services")
.process(//Some processing here)
.to("http://ThirdPartyServers")
}
除此之外,我有一个休息Web服务,它接收几个请求,进行一些处理,然后将消息移交给此路由以获得来自某些第三方服务器的响应.我通过Spring框架实例化了Camel Context,如下所示:
<camelContext id="appCamelContext" xmlns="http://camel.apache.org/schema/spring"
trace="true" streamCache="true">
<propertyPlaceholder id="properties"
location="classpath:camel.properties" />
<camel:routeBuilder ref="oneRouteBuilder" />
<camel:routeBuilder ref="photosRouteBuilder" />
</camelContext>
现在的问题是,我立即向这条路线发送了多条不同的消息.现在Camel文档说直接组件在单线程中调用并且是同步的.那么所有的消息会同时处理还是一个接一个的处理会发生?
此外,如果我将直接组件更改为seda,它会有任何区别吗?
TIA
更新[在Petter的回答之后]:
尽管Petter的回答已经澄清,但我对Direct和Seda相同的组件有了新的疑问.让我们说我的路线现在是这样的:
public void configure(){
from("direct:services")
.choice()
.when("some predicate here-Predicate1")
.to("seda:predicate1")
.otherwise()
.to("seda:fallback")
.end();
from("seda:predicate1")
.process("some processing")
.to("http://ThirdPartyServers");
from("seda:fallback")
.process("some processing")
.to("jms:fallbackqueue");
}
现在,如果我向不同线程的直接组件发送5条消息,那么这些消息将同时处理.正如您在上面的路由中看到的那样,direct组件将消息发送到seda组件.那么现在只有一个seda组件的线程将处理所有不同的5条消息?最后的含义是什么消息将被逐一处理?
解决方法:
直接组件在调用者的线程中运行.简化,它是一个常规的java方法调用.只要多个线程正在调用直接端点,就可以在路由中运行多条消息.
在调用SEDA(或VM)端点时,您将消息放入队列(在内存中).另一个线程(在路由中)逐个从队列中选择消息并处理它们.您可以通过设置concurrentConsumers选项来配置seda使用者应具有的线程数.默认情况下,消耗一条消息的消息确保无论有多少线程生成此路由,一次只能处理一条消息.
它归结为你的陈述
in a instant I send multiple different messages to this route
如果这意味着不同的线程,或者只是序列中的一个单个线程,
内容总结
以上是互联网集市为您收集整理的java – 返回基础知识:Apache Camel路由和直接组件全部内容,希望文章能够帮你解决java – 返回基础知识:Apache Camel路由和直接组件所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。