gotz
gotz

Reputation: 559

Camel deployment with multiple applications and routes

I have a need in my project to develop more than a 100 integration points from external data vendors. Some of these are on FTP sites, while some are REST APIs. I am thinking of using Apache Camel to develop the routers. However, I want a good strategy to deploy my applications so that:

a. I can configure my end points using an XML or better still, using a GUI b. I can schedule my integration tasks using a GUI

Would using a tomcat container be a good option here? Will I need a load balancer so that my container does not run out of memory as the number of applications increase?

Upvotes: 2

Views: 1922

Answers (3)

Claus Ibsen
Claus Ibsen

Reputation: 55545

GUI editors

See this FAQ - http://camel.apache.org/is-there-an-ide.html

.. for example there is Fuse IDE as an Eclipse based editor/plugin.

And as Mike said, there is a also a web based UI editor in hawtio (though work in progress).

But the strong point about Camel is that the DSL is just plain Java code or XML so you must not use a special editor/tool.

Containers

Apache Camel is a library/framework which allows you to run Camel in any container of choice, whether its Java standalone, Apache Tomcat, Jetty, JBoss AS, JBoss Fuse, Apache Karaf/ServiceMix, WebSphere, and other JEE servers etc. And recently on Open Shift and Docker as well.

Upvotes: 0

hveiga
hveiga

Reputation: 6915

You should use Apache Karaf for this purpose. Apache Karaf is an OSGI container that has integration with Apache Camel and allows you to run XML routes written based on the Apache Aries Blueprint standard. Also, it provides a feature to create Karaf instances which are separated java processes (this will isolate problems) and clustering through a feature called Cellar from the root instance.

In addition, since it is OSGi, you will be able to deploy code and routes in runtime without the need to stop the service for new stuff. Moreover, if you want a fancy interface like Hawtio (which I recommend!) as Mike pointed out, Karaf provides integration with Hawtio as well.

You can take a look here: Apache Karaf

Regarding the Camel integration, you should take a look to Apache Camel: Karaf

Just as an example, you can download Karaf (3.0.0) and log in into the container and run this:

feature:repo-add mvn:org.apache.camel.karaf/apache-camel/2.13.0/xml/features
feature:repo-add mvn:io.hawt/hawtio-karaf/1.2.3/xml/features

feature:install camel-core
feature:install camel-blueprint
feature:install hawtio

And you create a Hello world XML based on Blueprint and place it into the deploy directory (I got this example from the Apache Camel: Karaf reference):

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<route id="route1" xmlns="http://camel.apache.org/schema/spring">
  <from uri="timer:test"/>
  <to uri="log:test" id="to1"/>
</route>

Then you can go to http://127.0.0.1:8181/hawtio and see your route running and you can start/stop it through the GUI.

Upvotes: 2

Mike Pone
Mike Pone

Reputation: 19330

If you want to use a GUI to configure your camel routes, I'd look at the camel plugin for hawtio. You will be able to start/stop and configure your camel routes from a web gui. I personally don't have experience to guide you further, but it's the route I would take.

Upvotes: 1

Related Questions