camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Claus Ibsen <>
Subject Re: stateful EIP patterns and clustering Camel
Date Sat, 21 May 2011 12:02:02 GMT

The various EIPs have pluggable APIs so you can plugin your own custom
clustering support.
Although a few of the EIPs dont have an easy pluggable API
(resequencer / throttler). But we will add that in a future release.

Also if you have shared state in a clustered Camel, you may have
overhead/issues having that state being communicated safely between
the nodes.

Its a bit out of the core of Camel to offer that. Its more an ESB
thingy that SMX may/should pickup.

That said. When the pluggable APIs are in place. The community can
help provide a cluster plugins for that.
For example there is a person donating hazelcast plugins.

On Thu, May 19, 2011 at 1:36 PM, janne postilista
<> wrote:
> - Throttler is also kind of a
> stateful EIP. If an endpoint can handle 10 requests per second, and
> there are something between 1 and 5 camels running in a clustered
> setup (depending on which ones are up and which down), how can we
> specify a throttler that is correct?
> - Sampling throttler also is
> kind of stateful(?)
> Camel (or servicemix running the camel) does not have a general
> concept such as "camel clustering" where you would configure number of
> camel instances, all running same routes, and configure them to be
> aware of each other and communicate their internal state between each
> other when running the I correct?
> On Thu, May 19, 2011 at 10:59 AM, Claus Ibsen <> wrote:
>> There is a JIRA ticket to improved the resequencer to allow a
>> pluggable repository. AFAIK its the last stateful EIP that doesnt
>> offer that. Another stateful EIP is the idempotent consumer.
>> On Thu, May 19, 2011 at 9:44 AM, janne postilista
>> <> wrote:
>>> Some of the EIP patterns are stateful. For example aggregator collects
>>> a group of messages 1-2-3 and sends the aggregated one once all 3 have
>>> arrived. When messages 1 and 2 have arrived, state = messages 1 and 2.
>>> Another example is resequencer.
>>> We are running multiple (now 2) instances of Camel to provide
>>> failover. Clustering is based on JMS queues. Messages arrive in input
>>> queue, a route (either camel instance A or B) reads the message and
>>> does some processing, writes the message to intermediate queue 1, some
>>> other route (from A or B) reads that message, etc, until the message
>>> is written to output queue.
>>> Is there some general Camel solution for working with stateful EIP
>>> patterns in clustered environment? State could be persisted in shared
>>> database. It seems aggregator
>>> supports this, jdbc-aggregationrepository is mentioned. However
>>> others, such as resequencer,
>>> do not have the same feature.
>> --
>> Claus Ibsen
>> -----------------
>> FuseSource
>> Email:
>> Web:
>> CamelOne 2011:
>> Twitter: davsclaus, fusenews
>> Blog:
>> Author of Camel in Action:

Claus Ibsen
CamelOne 2011:
Twitter: davsclaus, fusenews
Author of Camel in Action:

View raw message