I'm trying to determine my options for clustering my SMX 3.3.1/Camel 2.1/AMQ
5.3 application.  I'm performing high volume message processing and I need
to cluster for high availability and horizontal scalability.

Here is basically what my application
does...HTTP->QUEUE->PROCESS->DATABASE->TOPIC

from("jetty:http://0.0.0.0/inbound";)
.to("activemq:inboundQueue");

from("activemq:inboundQueue?maxConcurrentConsumers=50")
.process(decode())
.process(transform())
.process(validate())
.process(saveToDatabase())
.to("activemq:topic:ouboundTopic");

So, I've read all the ServiceMix and AcitveMQ clustering pages, but am still
not sure which way to go.  

I know I can use a Master/Slave setup for HA, but that doesn't help with
scalability.

I've read about network of brokers, but am not sure how this applies.  For
example, if I deploy identical Camel routes on multiple nodes in a cluster,
how will they "interact" exactly?  If I point my HTTP producer at one node
(NodeA), which messages will get sent to NodeB?  Will the queues/topics be
shared between Node A/B...if so how, are messages split or duplicated? 
Also, how would an external client subscribe to my "outboundTopic" exactly
(and get all messages, etc)?

Alternatively, I've been thinking that I should just share a broker between
multiple ServiceMix instances.  That would be cleaner in that there would
only be one set of queues/topics to manage and I could scale by adding more
instances.  But, now I'm limited to the scalability of a single broker and
I'm back to a single point of failure...

If anyone can clarify the trade-offs for me...I'd appreciate it.







-----
Ben - Senior Consultant
using SMX 3.3.1/Camel 2.1
-- 
View this message in context: 
http://old.nabble.com/clustering-Camel-with-AMQ-ServiceMix-tp27462441p27462441.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Reply via email to