普通队列与 SEDA 队列
2022-09-03 06:23:42
SEDA是一个首字母缩略词,代表分阶段事件驱动架构,它被设计为一种机制来调节消息处理不同阶段之间的流动。这个想法是平滑整个进程的消息输出频率,以便它与输入相匹配,它允许enpoint的消费者线程将长时间运行的操作的工作卸载到后台,从而释放它们以使用来自传输的消息。将交换传递到终结点时,会将其放入 .该列表存在于 Camel 上下文中,这意味着只有位于同一上下文中的路由才能通过此类型的终结点进行联接。默认情况下,队列是无界的,尽管可以通过在使用者的 URI 上设置 size 属性来更改队列。seda:
BlockingQueue
默认情况下,分配给终结点的单个线程从列表中读取交换,并通过路由处理它们。如处理示例所示,可以增加 数量,以确保及时从该列表中处理交易所。concurrenctConsumers
SEDA 模式最适合处理消息,其中一个路由完成处理并移交给另一个路由来处理下一阶段。当消息交换模式为 时,可以通过调用终结点来请求来自终结点的响应。InOnly
seda:
InOut
参考:Apache Camel Developer's Cookbook
SEDA队列就像一个常规队列(正如Peter上面所说,在Camel中,它们有一个与它们关联的线程池作为组件的一部分)。SEDA是一种架构。Camel 中的 SEDA 组件在进程中使用内存中队列,并且是一个单独的组件,以便将它们与 Apache camel 中的其他队列组件(即 JMS 组件)区分开来。