Reputation: 559
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
Reputation: 55545
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.
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
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
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