Based on James feedback, I have adapted the categories. I will create
a wiki page on camel wiki to show the different options
1. Loadbalancing
loadbalance() : http://camel.apache.org/load-balancer.html
2. Clustering
2.1. Same JVM & CamelContext
seda:// : http://camel.apache.org/seda.html or direct://
and threads()
jms:// or activemq:// and threads()
2.2 Different JVM & CamelContext
2.2.1. Suitable for solutions running in standalone mode or deployed
in Web Application Server (different WAR/EAR)
vm:// : http://camel.apache.org/vm.html or jms:// - activemq://
2.2.2. Between different instances of OSGI servers (SMX4)
nmr:// : http://camel.apache.org/nmr.html or jms:// - activemq://
2.2.3. If message persistence is required
jms:// - activemq://
4. Cloudcomputing
4.1 Cassandra
It could be interesting to create a Cassandra endpoint to allow to consume
info/camel messages from Cassandra DB (NOSQL database) or to push there
camel message (using id + binary stream). It might also make an interesting
aggregator implementation since its also distributed & can support multi-master
4.2 camel-terracotta
Extends the SEDA component
Kind regards,
Charles Moulliard
Senior Enterprise Architect
Apache Camel Committer
*****************************
blog : http://cmoulliard.blogspot.com
twitter : http://twitter.com/cmoulliard
Linkedlin : http://www.linkedin.com/in/charlesmoulliard
Apache Camel Group :
http://www.linkedin.com/groups?home=&gid=2447439&trk=anet_ug_hm
On Thu, Feb 25, 2010 at 6:02 PM, James Strachan
<[email protected]> wrote:
> On 25 February 2010 16:28, Charles Moulliard <[email protected]> wrote:
>> Hi,
>>
>> If we investigate what Camel 2.x project proposes in terms of
>> clustering/loabalancing solution, we can categorize the solutions like this
>> :
>>
>> 1. Loadbalancing
>> loadbalance() : http://camel.apache.org/load-balancer.html
>>
>> 2. Clustering
>>
>> 2.1. Same JVM & CamelContext
>> seda:// : http://camel.apache.org/seda.html or direct://
>> and Threads() or threadPool()
>>
>> 2.2 Different JVM & CamelContext
>> vm:// : http://camel.apache.org/vm.html
>>
>> 2.3 NMR
>> nmr:// : http://camel.apache.org/nmr.html
>
> JMS and activemq is well worth mentioning here as the default approach
> for multi-JVM clustering with load balancing (and if JMSXGroupID is
> used, auto-partitioning too).
>
> A queue is basically a clustered, fault tolerant, location
> transparent, failover capable, transactional version of "vm:". By
> itself the nmr is really just the same kind of thing as vm:// - as its
> typical use is to be a logical name inside a single JVM (albeit using
> WSDL exchange pattern naming conventions rather than just a string in
> vm:// - and ServiceMix tends to ensure that there is exactly one NMR
> in the JVM whereas its quite easy to have many camel class loaders and
> so vm:// spaces if you're not careful.
>
>
>> 3. Cloudcomputing
>>
>> 3.1 camel-terracotta
>> Extends the SEDA component
>>
>> 3.2 Cassandra
>> It could be interesting to create a Cassandra endpoint to allow to consume
>> info/camel messages from Cassandra DB (NOSQL database) or to push there
>> camel message (using id + binary stream) ? What do you think ?
>>
>> Is this inventory complete and exhaustif ?
>
> I'm liking the cassandra idea; that could be pretty interesting. It
> might also make an interesting aggregator implementation since its
> also distributed & can support multi-master etc
>
> --
> James
> -------
> http://macstrac.blogspot.com/
>
> Open Source Integration
> http://fusesource.com/
>