Quantcast

Migrate Apache Camel Endpoints

classic Classic list List threaded Threaded
14 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Migrate Apache Camel Endpoints

pmp.martins
I have recently started with Apache Camel so apologies if this questions is
silly.

I have 2 processes A and B, and each process has an endpoint E1 and E2
respectively. Now let's imagine that I need to create a process C and that
process B has to die. Can I migrate E2 to C and connect it through a route
to E1 in process A?

It is important to notice that A, B and C may be in different machines as
well.

I google for process migration in Camel, but all I found were articles
referring to JBoss Fuse:

- [Migrating Endpoints](
https://access.redhat.com/site/documentation/en-US/JBoss_Fuse/6.0/html/Implementing_Enterprise_Integration_Patterns/files/Migrate-Endpoints.html
)

So, the question naturally arrives, is it even possible to do it with
Apache Camel? If yes, how ? Can you provide some example or documentation?

Thanks in advance.
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Migrate Apache Camel Endpoints

Willem.Jiang
The Migrating Endpoints is not what you want.
You may consider to use Camel Fabric[1][2] to that kind of work.

[1]http://fuse.fusesource.org/fabric/docs/overview.html#Camel_Fabric
[2]http://fusesource.com/docs/esbent/7.0/camel_comp_ref/Master.html 


--  
Willem Jiang

Red Hat, Inc.
Web: http://www.redhat.com
Blog: http://willemjiang.blogspot.com (http://willemjiang.blogspot.com/) (English)
          http://jnn.iteye.com (http://jnn.javaeye.com/) (Chinese)
Twitter: willemjiang  
Weibo: 姜宁willem





On Saturday, October 19, 2013 at 10:38 PM, Pedro Martins wrote:

> I have recently started with Apache Camel so apologies if this questions is
> silly.
>  
> I have 2 processes A and B, and each process has an endpoint E1 and E2
> respectively. Now let's imagine that I need to create a process C and that
> process B has to die. Can I migrate E2 to C and connect it through a route
> to E1 in process A?
>  
> It is important to notice that A, B and C may be in different machines as
> well.
>  
> I google for process migration in Camel, but all I found were articles
> referring to JBoss Fuse:
>  
> - [Migrating Endpoints](
> https://access.redhat.com/site/documentation/en-US/JBoss_Fuse/6.0/html/Implementing_Enterprise_Integration_Patterns/files/Migrate-Endpoints.html
> )
>  
> So, the question naturally arrives, is it even possible to do it with
> Apache Camel? If yes, how ? Can you provide some example or documentation?
>  
> Thanks in advance.  


Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Migrate Apache Camel Endpoints

pmp.martins
This post was updated on .
Thanks, I am working on it.
I have a few questions however, why do I need to use ActiveMQ? Why can I not simply use the JMS?
And do I really need fuse? I know my processes may be in different machines, but isn't Camel supposed to be able to deal with that?
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Migrate Apache Camel Endpoints

Willem.Jiang
Camel doesn't provide any JMS broker, if you use the camel-jms component,
you need to setup a JMS broker (server) to let camel-jms connect.

Fuse provides the HA and Failover feature which camel doesn't provide.


Willem Jiang

Red Hat, Inc.
FuseSource is now part of Red Hat
Web: http://www.fusesource.com | http://www.redhat.com
Blog: http://willemjiang.blogspot.com (http://willemjiang.blogspot.com/)
(English)
          http://jnn.iteye.com (http://jnn.javaeye.com/) (Chinese)
Twitter: willemjiang
Weibo: 姜宁willem


On Fri, Nov 1, 2013 at 8:47 PM, pmp.martins
<[hidden email]>wrote:

> Thanks, I am working on it.
> I have a few questions however, why do I need to use ActiveMQ? I can I not
> simply use the JMS?
> And do I really need fuse? I know my processes may be in different
> machines,
> but isn't Camel supposed to be able to deal with that?
>
>
>
> --
> View this message in context:
> http://camel.465427.n5.nabble.com/Migrate-Apache-Camel-Endpoints-tp5741899p5742492.html
> Sent from the Camel - Users mailing list archive at Nabble.com.
>
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Migrate Apache Camel Endpoints

pmp.martins
Alright, so let me check if I understand.
Camel needs a JMS implementation. For that I can either choose ActiveMQ or the camel-jms-component correct?
Well, I am working in a project that uses ActiveMQ, so I will stick with that.

Now, if I have a Camel project with ActiveMQ, I will have the Loadbalancer with the failover feature right?
If not, does it mean that I am forced to use Fuse?

Thanks for the clarifications, you're helping a lot !
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Migrate Apache Camel Endpoints

Willem.Jiang
First, camel-jms component works as a JMS client not the JMS Broker implementation.
Camel LoadBalancer provide a failover feature ,  but it doesn’t support master/salver feature out of box.

Willem Jiang

Red Hat, Inc.
Web: http://www.fusesource.com | http://www.redhat.com
Blog: http://willemjiang.blogspot.com (http://willemjiang.blogspot.com/) (English)
          http://jnn.iteye.com (http://jnn.javaeye.com/) (Chinese)
Twitter: willemjiang
Weibo: 姜宁willem

On Nov 2, 2013, at 7:45 AM, pmp.martins <[hidden email]> wrote:

> Alright, so let me check if I understand.
> Camel needs a JMS implementation. For that I can either choose ActiveMQ or
> the camel-jms-component correct?
> Well, I am working in a project that uses ActiveMQ, so I will stick with
> that.
>
> Now, if I have a Camel project with ActiveMQ, I will have the Loadbalancer
> with the failover feature right?
> If not, does it mean that I am forced to use Fuse?
>
> Thanks for the clarifications, you're helping a lot !
>
>
>
> --
> View this message in context: http://camel.465427.n5.nabble.com/Migrate-Apache-Camel-Endpoints-tp5741899p5742532.html
> Sent from the Camel - Users mailing list archive at Nabble.com.

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Migrate Apache Camel Endpoints

pmp.martins
This post was updated on .
Ok... so I am still struggling with understanding some of Camel's main features and limitations.

My objective is to implement a demo application that can migrate camel endpoints. To achieve this everyone suggested that I should use the camel load-balancer pattern with the failover construct (so far so good).

To achieve this objective you have suggested Fuse and ActiveMQ. Some have even suggested JBoss, but I am lost.

I understand that Camel needs the an implementation of a JMS server. To achieve this I can use ActiveMQ - a free implementation of a JMS server.

However camel also provides the jms-component, which is an implementation of a jms-client. In my specific case (I use ACtiveMQ) should I not be using an ActiveMQ client for JMS? Could someone provide a working example?

With ActiveMQ and JMS understood I can then try to find out why people suggest Fuse. I want my implementation to be as simple as possible. Why do I need Fuse? The Camel+ActiveMQ combination has the load balancer pattern with the failover mechanism right?

Thanks for all the help, but I really need to understand the basics before charging anything else :P
Should I create a new post for these questions?
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Migrate Apache Camel Endpoints

Christoph Emmersberger-2
Hi

first of all, I would say that your formula Camel + ActiveMQ is almost right.

What you might be missing is your runtime, where you deploy Camel to. This might be the point why people have guided you towards Fuse, JBoss, Talend, etc.

Fuse, Talend, etc. provide additional tooling to implement your routes e.g. via graphical editors which might easy some of the steps you described.

Using Camel and ActiveMQ you can apply

a) The JMS component as client implementation that provides a certain abstraction layer and you might switch your underlying JMS provider at some stage (http://camel.apache.org/jms.html)
b) The ActiveMQ component that ties you to the usage of ActiveMQ (http://camel.apache.org/activemq.html)

If you need a working example, I recommend looking at the test cases might be a good entry point to get started with that topic.

Hope that the given information did help a little.

- Christoph

On 02 Nov 2013, at 14:03, pmp.martins <[hidden email]> wrote:

> Ok... so I am still struggling with understanding some of Camel's main
> features and limitations.
>
> My objective is to implement a demo application that can migrate camel
> endpoints. To achieve this everyone suggested that I should use the camel
> load-balancer pattern with the failover construct (so far so good).
>
> To achieve this objective you have suggested Fuse and ActiveMQ. Some have
> even suggested JBoss, but I am lost.
>
> I understand that Camel needs the an implementation of a JMS server. To
> achieve this I can use ActiveMQ - a free implementation of a JMS server.
>
> However camel also provides the jms-component, which is an implementation of
> a jms-client. In my specific case (I use ACtiveMQ) should I not be using an
> ActiveMQ client for JMS? Could someone provide a working example?
>
> With ActiveMQ and JMS understood I can then try to find out why people
> suggest Fuse. I want my implementation to be as simple as possible. Why do I
> need Fuse? The Camel+ActiveMQ combination has the load balancer pattern with
> the failover mechanism right?
>
> Thanks for all the help, but I really need to understand the basics before
> charging anything else :P
>
>
>
> --
> View this message in context: http://camel.465427.n5.nabble.com/Migrate-Apache-Camel-Endpoints-tp5741899p5742538.html
> Sent from the Camel - Users mailing list archive at Nabble.com.

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Migrate Apache Camel Endpoints

Claus Ibsen-2
In reply to this post by pmp.martins
Hi

Sounds like you are talking about reliable messaging / clustering.
This is what Apache ActiveMQ provides much better.

For example if you take a look at Apache ServiceMix, which is an ESB,
then ActiveMQ is the "reliable messaging" backbone of this ESB. And
Camel is the integration "glue" that makes it easy to integrate with
different APIs and transports, and use a standard set of Enterprise
Integration Patterns (EIPs) to define your integration flows (aka
routes in Camel).

So if you combine Camel + ActiveMQ such as ServiceMix does, then you
can support this.

So if you have a cluster of SMX then you can have nodes crash and AMQ
ensures reliable messaging and failover / HA.

Though setting up AMQ to do that is non-trivial. With SMX that setup
is a manual process, and also static at first. Though you can have AMQ
rebalance when new nodes is being added etc. Setting up AMQ is
manageable when you have a lower number of nodes.


------------------
A side note

To help make this much easier when you have more and more nodes, and
if these nodes come and go, or having nodes running in the cloud, etc.
then there is some 3rd party projects that help makes this much
easier.

One of them is Fuse Fabric
http://fuse.fusesource.org/fabric/

Which is part of JBoss Fuse product.
http://www.jboss.org/jbossfuse

In the new release JBoss Fuse 6.1, you can setup broker topologies
much easier, which can be visualized in a web console etc. Some sneak
peeks what is coming can be read from James blog
http://macstrac.blogspot.co.uk/2013/10/a-sneak-peek-at-whats-coming-in-jboss.html

------------------






On Sat, Oct 19, 2013 at 4:38 PM, Pedro Martins
<[hidden email]> wrote:

> I have recently started with Apache Camel so apologies if this questions is
> silly.
>
> I have 2 processes A and B, and each process has an endpoint E1 and E2
> respectively. Now let's imagine that I need to create a process C and that
> process B has to die. Can I migrate E2 to C and connect it through a route
> to E1 in process A?
>
> It is important to notice that A, B and C may be in different machines as
> well.
>
> I google for process migration in Camel, but all I found were articles
> referring to JBoss Fuse:
>
> - [Migrating Endpoints](
> https://access.redhat.com/site/documentation/en-US/JBoss_Fuse/6.0/html/Implementing_Enterprise_Integration_Patterns/files/Migrate-Endpoints.html
> )
>
> So, the question naturally arrives, is it even possible to do it with
> Apache Camel? If yes, how ? Can you provide some example or documentation?
>
> Thanks in advance.



--
Claus Ibsen
-----------------
Red Hat, Inc.
Email: [hidden email]
Twitter: davsclaus
Blog: http://davsclaus.com
Author of Camel in Action: http://www.manning.com/ibsen
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Migrate Apache Camel Endpoints

pmp.martins
I don't want to build a reliable messaging / clustering alternative. All I want is to be able to stop sending messages to a certain endpoint B, and replicate it in another machine in order to manage load or for some other reason. I merely use the LoadBalancer component with the failover construct because everyone keeps saying that is what I am looking for, even though it won't work 100% as expected because Processor A will keep trying to send information to a processor that I no longer want to, and will only send information to the new processor as a last alternative.

If there is an easier way to do it, I'm all ears :S
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Migrate Apache Camel Endpoints

Claus Ibsen-2
Build you own load balancing algorithm to select the "last known good"
choice and then keep use that, and if that fail, then try another etc.

The Camel LB allows to plugin custom algorithms.

On Sun, Nov 3, 2013 at 4:50 PM, pmp.martins
<[hidden email]> wrote:

> I don't want to build a reliable messaging / clustering alternative. All I
> want is to be able to stop sending messages to a certain endpoint B, and
> replicate it in another machine in order to manage load or for some other
> reason. I merely use the LoadBalancer component with the failover construct
> because everyone keeps saying that is what I am looking for, even though it
> won't work 100% as expected because Processor A will keep trying to send
> information to a processor that I no longer want to, and will only send
> information to the new processor as a last alternative.
>
> If there is an easier way to do it, I'm all ears :S
>
>
>
> --
> View this message in context: http://camel.465427.n5.nabble.com/Migrate-Apache-Camel-Endpoints-tp5741899p5742562.html
> Sent from the Camel - Users mailing list archive at Nabble.com.



--
Claus Ibsen
-----------------
Red Hat, Inc.
Email: [hidden email]
Twitter: davsclaus
Blog: http://davsclaus.com
Author of Camel in Action: http://www.manning.com/ibsen
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Migrate Apache Camel Endpoints

pmp.martins
@Claus: If  I could give you kudos++ here I totally would. I did it in StackOverflow though, its not much but at least it is something. I really appreciate your help and effort.

I will totally invest my time in doing that once I get the major problems I detail HERE solved.

I also did a replicate in StackOverflow just in case someone else shows up with information (I hope you don't feel offended by it).
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Migrate Apache Camel Endpoints

Claus Ibsen-2
In reply to this post by Claus Ibsen-2
In fact the last known good algorithm would be useful to have out of
the box. I logged a ticket
https://issues.apache.org/jira/browse/CAMEL-6930



On Sun, Nov 3, 2013 at 5:19 PM, Claus Ibsen <[hidden email]> wrote:

> Build you own load balancing algorithm to select the "last known good"
> choice and then keep use that, and if that fail, then try another etc.
>
> The Camel LB allows to plugin custom algorithms.
>
> On Sun, Nov 3, 2013 at 4:50 PM, pmp.martins
> <[hidden email]> wrote:
>> I don't want to build a reliable messaging / clustering alternative. All I
>> want is to be able to stop sending messages to a certain endpoint B, and
>> replicate it in another machine in order to manage load or for some other
>> reason. I merely use the LoadBalancer component with the failover construct
>> because everyone keeps saying that is what I am looking for, even though it
>> won't work 100% as expected because Processor A will keep trying to send
>> information to a processor that I no longer want to, and will only send
>> information to the new processor as a last alternative.
>>
>> If there is an easier way to do it, I'm all ears :S
>>
>>
>>
>> --
>> View this message in context: http://camel.465427.n5.nabble.com/Migrate-Apache-Camel-Endpoints-tp5741899p5742562.html
>> Sent from the Camel - Users mailing list archive at Nabble.com.
>
>
>
> --
> Claus Ibsen
> -----------------
> Red Hat, Inc.
> Email: [hidden email]
> Twitter: davsclaus
> Blog: http://davsclaus.com
> Author of Camel in Action: http://www.manning.com/ibsen



--
Claus Ibsen
-----------------
Red Hat, Inc.
Email: [hidden email]
Twitter: davsclaus
Blog: http://davsclaus.com
Author of Camel in Action: http://www.manning.com/ibsen
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Migrate Apache Camel Endpoints

pmp.martins
Thanks!
Loading...