What is the difference between JBoss Fuse and Apache camel? How can it be used in building micro service based applications?
Apache Camel is an open source integration framework which was started in early 2007. It is an EIP (Enterprise Integration Pattern) based approach which provides several out of the box patterns implementations that can be used to solve enterprise integration problems.
Red Hat JBoss Fuse is an open source Enterprise Service Bus (ESB) that focuses on mediating, transforming, and routing data across multiple applications, services, or devices for both internal systems and external services.
Red Hat Fuse is an open source integration platform based on Apache Camel. It is a distributed integration platform that provides a standardized methodology, infrastructure, and tools to integrate services, microservices, and application components. Red Hat Fuse. Developer(s)
Fuse does not use Java or Java Enterprise Edition. Fuse does not utilize the JBoss Enterprise Application Server Platform (EAP). Fuse uses OSGi in the development of other components in your infrastructure. Fuse uses the Apache Karaf container for other components in your infrastructure.
Apache Camel is a versatile open-source integration framework based on known Enterprise Integration Patterns. Camel empowers you to define routing and mediation rules in a variety of domain-specific languages, including a Java-based Fluent API, Spring or Blueprint XML Configuration files, and a Scala DSL. So from this definition you can conclude that Apache Camel is an integration framework, Which means you have a set of libraries to build applications. As we know each application needs to be run on an environment. Apache Camel application can be run in these ways:
1- Standalone. For more information about standalone running Camel Standalone Running
2- On OSGI container. Apache Camel is designed to work nicely into Apache Karaf OSGi container. You can say that Redhat Fuse provides support for running Camel Application through Apache Karaf in addition to the support of Fuse for technologies that Apache Camel uses like ActiveMQ and CXF. see https://developers.redhat.com/products/fuse/overview/ for more explanation.
You can use Camel to build micro service applications by writing your Camel Routes inside your Camel Context, package them as bundles using mvn for example and deploy it on Redhat Fuse Karaf container. Each route consists of endpoints that represent different technologies may be CXF for SOAP and REST, files and a lot of type of endpoints to help you in integration process.
To expand on Mohammed's answer:
Apache Camel is a container agnostic mediation and routing engine, running on Java and implementing Enterprise Integration Patterns. There are a couple of hundred Camel components providing access to may different protocols (file:, http:, ftp:, jms:, amqp:, etc.) and providers (AWS, DropBox, GitHub, etc.).
Red Hat JBoss Fuse, formerly FUSE ESB from FuseSource.com, is a commercial implementation of Apache ServiceMix. Apache ServiceMix is an Integration Framework, built on OSGi (runtime), which includes Apache Karaf (OSGi container; not part of the OSGi spec), Apache Camel (mediation and routing engine), Apache ActiveMQ (reliable messaging), CXF (web services framework), and a few other bits.
You can run Camel a number of different ways, including stand-alone, inside a Java EE deployment, on OSGi (with or without Karaf), or pretty much anywhere you're on Java. It looks like Red Hat is going to be pushing folks to use Spring Boot on OpenShift to run Camel.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With