Camel Deployment in a distributed environment

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Camel Deployment in a distributed environment

asaksena1
Hi,

After evaluating Camel+ActiveMQ, I have come to the conclusion that it is a good solution for the project that I'm working on.

Now I'm confronted with the daunting task of working on the distributed deployment of the components using Camel. [Basically Application and Services running on different network nodes]

I'm trying to find some documentation from Camel to help me but I have been struggling. Right now I'm trying to read and understand from build.xml that ships with the example 
I just want to make sure that my understanding is correct and I'm on the right track.

1) Camel Engine has to be running on both the n/w nodes.
2) JMS broker can be running anywhere. But is it sufficient to uri=tcp://<somehost>:61616 in camel-server.xml?
3) Now,since the JMS broker and the Camel Engine are *not* running in the same jvm, how do I configure my "jms" consumer component on the Service side?  [I can't use brokerURL = "vm://localhost" anymore]
4) Is "ServerRoutes" required only on the Server (Services) Side?

Thanks
Reply | Threaded
Open this post in threaded view
|

Re: Camel Deployment in a distributed environment

jstrachan
2008/12/16 asaksena1 <[hidden email]>:
>
> Hi,
>
> After evaluating Camel+ActiveMQ, I have come to the conclusion that it is a
> good solution for the project that I'm working on.

Great :)

> Now I'm confronted with the daunting task of working on the distributed
> deployment of the components using Camel. [Basically Application and
> Services running on different network nodes]
>
> I'm trying to find some documentation from Camel to help me but I have been
> struggling.

Camel is a framework; so you deploy it in whatever applications you
wish. Its up to you how finely grained you make your application - one
single deployment unit or multiple pieces.


> Right now I'm trying to read and understand from build.xml that
> ships with the
> http://activemq.apache.org/camel/tutorial-jmsremoting.html#Tutorial-JmsRemoting-AOPEnabledServer
> example
> I just want to make sure that my understanding is correct and I'm on the
> right track.
>
> 1) Camel Engine has to be running on both the n/w nodes.

If you want camel routes to run on them then yes


> 2) JMS broker can be running anywhere. But is it sufficient to
> uri=tcp://<somehost>:61616 in camel-server.xml?

Yes. You probably want to use auto-reconnect (so add a
"failover:tcp:./somehost:61616")
http://activemq.apache.org/how-can-i-support-auto-reconnection.html


> 3) Now,since the JMS broker and the Camel Engine are *not* running in the
> same jvm, how do I configure my "jms" consumer component on the Service
> side?  [I can't use brokerURL = "vm://localhost" anymore]

Use the same brokerURL property as in 2).

Its probably easiest to separate the camel routes from the broker JVMs
if you've lots of different routes you want to group together; but at
least using the same TCP URL will simplify if you move stuff around
from inside the broker to outside.


> 4) Is "ServerRoutes" required only on the Server (Services) Side?

In JMS there really isn't a client or server side; any JVM can be a
server or client. So I guess thats a yes :)

--
James
-------
http://macstrac.blogspot.com/

Open Source Integration
http://fusesource.com/
Reply | Threaded
Open this post in threaded view
|

Re: Camel Deployment in a distributed environment

asaksena1
Thanks James,
This is all good information. If I stumble somewhere, come back to this post again.

-Anurag

James.Strachan wrote
2008/12/16 asaksena1 <anurag.saksena@gmail.com>:
>
> Hi,
>
> After evaluating Camel+ActiveMQ, I have come to the conclusion that it is a
> good solution for the project that I'm working on.

Great :)

> Now I'm confronted with the daunting task of working on the distributed
> deployment of the components using Camel. [Basically Application and
> Services running on different network nodes]
>
> I'm trying to find some documentation from Camel to help me but I have been
> struggling.

Camel is a framework; so you deploy it in whatever applications you
wish. Its up to you how finely grained you make your application - one
single deployment unit or multiple pieces.


> Right now I'm trying to read and understand from build.xml that
> ships with the
> http://activemq.apache.org/camel/tutorial-jmsremoting.html#Tutorial-JmsRemoting-AOPEnabledServer
> example
> I just want to make sure that my understanding is correct and I'm on the
> right track.
>
> 1) Camel Engine has to be running on both the n/w nodes.

If you want camel routes to run on them then yes


> 2) JMS broker can be running anywhere. But is it sufficient to
> uri=tcp://<somehost>:61616 in camel-server.xml?

Yes. You probably want to use auto-reconnect (so add a
"failover:tcp:./somehost:61616")
http://activemq.apache.org/how-can-i-support-auto-reconnection.html


> 3) Now,since the JMS broker and the Camel Engine are *not* running in the
> same jvm, how do I configure my "jms" consumer component on the Service
> side?  [I can't use brokerURL = "vm://localhost" anymore]

Use the same brokerURL property as in 2).

Its probably easiest to separate the camel routes from the broker JVMs
if you've lots of different routes you want to group together; but at
least using the same TCP URL will simplify if you move stuff around
from inside the broker to outside.


> 4) Is "ServerRoutes" required only on the Server (Services) Side?

In JMS there really isn't a client or server side; any JVM can be a
server or client. So I guess thats a yes :)

--
James
-------
http://macstrac.blogspot.com/

Open Source Integration
http://fusesource.com/