第 6 章 消息传递频道
摘要
消息传递通道为消息传递应用程序提供管道。本章描述了消息传递系统中可用的不同类型的消息传递通道,以及它们所扮演的角色。
6.1. point-to-Point Channel
概述
图 6.1 “指向点频道模式” 所示的一个 点对点频道是一个 消息频道,用来 保证只有一个接收器消耗任何给定消息。这与 发布 订阅频道不同,它允许多个接收器使用相同的消息。特别是,通过发布订阅频道,多个接收器可以订阅同一频道。如果多个接收器竞争使用消息,则取决于消息频道,以确保只有一个接收器实际消耗了该消息。
图 6.1. 指向点频道模式
支持点对点频道的组件
以下 Apache Camel 组件支持点到点频道模式:
JMS
在 JMS 中,点对点频道由 队列 表示。例如,您可以为名为 Foo.Bar
的 JMS 队列指定端点 URI,如下所示:
jms:queue:Foo.Bar
限定符 queue:
是可选的,因为 JMS 组件默认创建队列端点。因此,您还可以指定以下对等端点 URI:
jms:Foo.Bar
如需了解更多详细信息,请参阅 Apache Camel 组件参考指南 中的 Jms。
ActiveMQ
在 ActiveMQ 中,点对点频道由队列表示。例如,您可以为名为 Foo.Bar
的 ActiveMQ 队列指定端点 URI,如下所示:
activemq:queue:Foo.Bar
如需了解更多详细信息,请参阅 Apache Camel 组件参考指南 中的 ActiveMQ。
SEDA
Apache Camel Staged Event-Driven Architecture (SEDA)组件使用阻塞队列来实施。如果要创建一个 Apache Camel 应用程序 内部 的轻量级点对点频道,请使用 SEDA 组件。例如,您可以为名为 SedaQueue
的 SEDA 队列指定端点 URI,如下所示:
seda:SedaQueue
JPA
Java Persistence API (EJB)组件是一个 EJB 3 持久性标准,用于将实体 Bean 写入数据库。如需了解更多详细信息,请参阅 Apache Camel 组件参考指南 中的 JPA。
XMPP
XMPP (Jabber)组件支持点到点频道模式。如需了解更多详细信息,请参阅 Apache Camel 组件参考指南中的 XMPP。