Hi 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 <[email protected]> wrote: > - Throttler http://camel.apache.org/throttler.html 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 http://camel.apache.org/sampling.html 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 routes...am I correct? > > > On Thu, May 19, 2011 at 10:59 AM, Claus Ibsen <[email protected]> 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 >> <[email protected]> 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 http://camel.apache.org/aggregator2.html >>> supports this, jdbc-aggregationrepository is mentioned. However >>> others, such as resequencer http://camel.apache.org/resequencer.html, >>> do not have the same feature. >>> >> >> >> >> -- >> Claus Ibsen >> ----------------- >> FuseSource >> Email: [email protected] >> Web: http://fusesource.com >> CamelOne 2011: http://fusesource.com/camelone2011/ >> Twitter: davsclaus, fusenews >> Blog: http://davsclaus.blogspot.com/ >> Author of Camel in Action: http://www.manning.com/ibsen/ >> > -- Claus Ibsen ----------------- FuseSource Email: [email protected] Web: http://fusesource.com CamelOne 2011: http://fusesource.com/camelone2011/ Twitter: davsclaus, fusenews Blog: http://davsclaus.blogspot.com/ Author of Camel in Action: http://www.manning.com/ibsen/
