domingo, 10 de agosto de 2025

Apache Camel: un framework para integración de sistemas y datos

 

Apache Camel es un framework de integración de código abierto basado en Java que facilita la conexión y comunicación entre diferentes sistemas, aplicaciones o servicios mediante patrones de integración empresarial (EIP). Permite definir rutas de procesamiento de mensajes de forma sencilla, soportando múltiples protocolos y formatos de datos. Además de integraciones más complejas, como conectar APIs o bases de datos.

Nos sirve para:

  • Integración de sistemas: Conecta aplicaciones heterogéneas (ej. bases de datos, APIs, colas de mensajes). 
  • Transformación de datos: Convierte formatos (XML, JSON, etc.). 
  • Enrutamiento de mensajes: Dirige datos entre sistemas según reglas definidas. 
  • Soporte de protocolos: Integra con HTTP, FTP, JMS, Kafka, y más.
  • Automatización: Simplifica flujos de trabajo complejos.

Aunque está diseñado principalmente para entornos Java y se integra bien con aplicaciones basadas en JVM, también soporta otros lenguajes y entornos gracias a su flexibilidad y componentes.

Hagamos un sencillo ejemplo. Un simple "Hola, mundo". Primero debemos tener instalado:

  1. JDK 8 o una versión mayor. 
  2. Maven en su última versión.

Crear un proyecto Maven y agregar esta dependencia al pom.xml:

<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-core</artifactId>
    <version>4.8.0</version>
</dependency>

Podemos crear el proyecto con estos comandos:

$ mvn archetype:generate -DgroupId=com.codemonkey -DartifactId=HolaMundo -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

Creamos una clase Java:

HolaMundoCamel.java

import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.main.Main;

public class HolaMundoCamel {
    public static void main(String[] args) throws Exception {
        Main camel = new Main();
        camel.configure().addRoutesBuilder(new RouteBuilder() {
            @Override
            public void configure() {
                from("timer:hello?period=2000")
                    .setBody(constant("Hola, Mundo"))
                    .to("log:output");
            }
        });
        camel.run();
    }
}

Construimos el proyecto:

$ mvn clean install

Ejecutamos:

$ mvn exec:java -Dexec.mainClass="HolaMundoCamel"

Cada 2 segundos se mostrará este mensaje:

[main] output INFO  Exchange[ExchangePattern: InOnly, Body: Hola, Mundo]

Apache Camel también se puede usar con Spring Boot y Quarkus.

Enlaces:

https://camel.apache.org/

No hay comentarios:

Publicar un comentario

Apache Camel: un framework para integración de sistemas y datos

  Apache Camel es un framework de integración de código abierto basado en Java que facilita la conexión y comunicación entre diferentes ...

Etiquetas

Archivo del blog