Apache Camel - Características

Habiendo visto una descripción general de Apache Camel, profundicemos en sus características para ver qué ofrece. Ya sabemos que Apache Camel es un marco Java de código abierto que esencialmente proporciona una implementación de varios EIP. Camel facilita la integración al proporcionar conectividad a una gran variedad de transportes y API. Por ejemplo, puede enrutar fácilmente JMS a JSON, JSON a JMS, HTTP a JMS, FTP a JMS, incluso HTTP a HTTP y conectividad a microservicios. Simplemente necesita proporcionar puntos finales apropiados en ambos extremos. Camel es extensible y, por lo tanto, en el futuro se pueden agregar fácilmente más puntos finales al marco.

Para conectar EIP y transportes juntos, utilice lenguajes específicos de dominio (DSL) como Java, Scala y Groovy. Una regla de enrutamiento típica de Java puede verse así:

from ("file:/order").to("jms:orderQueue");

Esta regla de enrutamiento carga los archivos del order directorio, crea un mensaje JMS con el contenido del archivo y envía ese mensaje a una cola llamada orderQueue.

Estas son algunas de las características más importantes de Camel que le resultarían útiles en el desarrollo de aplicaciones Camel:

  • Camel admite formatos de datos conectables y convertidores de tipos para tales transformaciones de mensajes, por lo que se pueden agregar nuevos formatos y convertidores en el futuro. Actualmente, es compatible con varios formatos y convertidores populares; por nombrar algunos: CSV, EDI, JAXB, JSON, XmlBeans, XStream, Flatpack, Zip.

  • Camel admite lenguajes conectables para escribir predicados en DSL. Algunos de los lenguajes admitidos incluyen JavaScript, Groovy, Python, PHP, Ruby, SQL, XPath, XQuery.

  • Camel admite el modelo POJO para que pueda conectar Javabeans en varios puntos.

  • Camel facilita las pruebas de sistemas grandes distribuidos y asincrónicos mediante el uso de mensajería.

Entendamos ahora la arquitectura de Camel y veamos cómo se implementan las diversas funciones.