A publish-subscribe channel, shown in Figure 3.2, is a message channel that enables multiple subscribers to consume any given message. This is in contrast with a point-to-point channel. Publish-subscribe channels are frequently used as a means of broadcasting events or notifications to multiple subscribers.
The following FUSE Mediation Router components support the publish-subscribe channel pattern:
In JMS, a publish-subscribe channel is represented by a topic.
For example, you can specify the endpoint URI for a JMS topic called StockQuotes
as follows:
jms:topic:StockQuotes
See ???? for more details.
In ActiveMQ, a publish-subscribe channel is represented by a topic. For example, you
can specify the endpoint URI for an ActiveMQ topic called StockQuotes
, as
follows:
activemq:topic:StockQuotes
See ???? for more details.
The XMPP (Jabber) component supports the publish-subscribe channel pattern when it is used in the group communication mode. See ???? for more details.
If you prefer, you can also implement publish-subscribe logic within the FUSE Mediation Router application itself. A simple approach is to define a static subscription list, where the target endpoints are all explicitly listed at the end of the route. However, this approach is not as flexible as a JMS or ActiveMQ topic.
The following Java DSL example shows how to simulate a publish-subscribe channel with a
single publisher, seda:a
, and three subscribers, seda:b
,
seda:c
, and seda:d
:
from("seda:a").to("seda:b", "seda:c", "seda:d");
![]() | Note |
---|---|
This only works for the InOnly message exchange pattern. |
The following example shows how to configure the same route in XML:
<camelContext id="buildStaticRecipientList" xmlns="http://activemq.apache.org/camel/schema/spring"> <route> <from uri="seda:a"/> <to uri="seda:b"/> <to uri="seda:c"/> <to uri="seda:d"/> </route> </camelContext>