IAm*_*aja 13 java queue messaging apache-camel
作为Apache Camel的新手,我最近正在审查其长长的组件列表,并偶然发现他们对SEDA队列组件的支持.
这个页面对我来说没什么意义,所以我做了几个在线搜索"SEDA队列"一词,并在这里得到了维基百科的文章.
阅读那篇文章之后,我不知道SEDA队列与普通的"普通"队列之间有什么区别!两者都通过使用异步队列来接受解耦系统的概念.
从文章中,"SEDA"听起来就像一个架构,包括在每个组件之间放置一个队列.它是否正确?
但如果它只是一个架构,那么为什么"SEDA"队列是一个特殊的Apache Camel组件呢?
SEDA队列就像一个常规队列(正如Peter在上面所说,在Camel中,他们有一个与它们相关联的线程池作为组件的一部分).SEDA是一种建筑.Camel中的SEDA组件在进程中使用内存中队列,并且是一个单独的组件,以便将它们与Apache camel中的其他队列组件(即JMS组件)区分开来.
小智 6
SEDA是一个首字母缩略词,代表分阶段事件驱动架构,它被设计为一种机制来调节消息处理的不同阶段之间的流程.我们的想法是消除整个流程中消息输出的频率,使其与输入匹配.它允许enpoint的消费者线程将长时间运行的操作的工作卸载到bakground中,从而释放它们以消耗消息从运输.当交换传递给seda:端点时,它将被置于BlockingQueue中.该列表存在于camel上下文中,这意味着只有那些位于同一上下文中的路由才能被这种类型的端点连接起来.默认情况下,队列是无限制的,但可以通过在使用者的URI上设置size属性来更改该队列.
默认情况下,分配给端点的单个线程会从列表中读取交换并通过路由处理它们.如程序示例所示,可以增加concurrenctConsumers的数量,以确保及时从该列表中处理交换.
SEDA模式最适合处理InOnly消息,其中一个路由完成处理并且切换到另一个路由以处理下一个阶段.当消息交换模式为InOut时,可以通过调用来询问seda:endpoint的响应
参考.Apache Camel Developer的Cookbook
| 归档时间: | 
 | 
| 查看次数: | 9834 次 | 
| 最近记录: |