Integração Simplificada com Apache Camel

Integração de sistema sempre foi e sempre sera uma necessidade para qualquer departamento de TI.Esta integração é feita na maioria das vezes de forma manual e pontual, este tipo de abordagem trás diversos problemas como por exemplo a complexidade de construir a integração sem utilizar um framework que lhe de beneficios como padrões, design certo a seguir, reutilização de código, reuso.

É normal se você estiver pensando em um ESB, porem um ESB requer muito conhecimneto, pensamento em design e você vai ter que lidar com uma certa complexidade. Neste post vim falar do Apache Camel que é um framework de integração de sistemas como se fosse um *ESB-Leve* fortemente baseado em Spring.



O Camel é um solução open source da Apache muito simples e extremamente flexivel, parte da sua flexibilidade é dada através da sua excelente integração com o Spring Framework.

Este framework não apénas facilita a sua vida quando você trabalha com JMS ou WebServices por exemplo, facilita também quando você tem que trabalhar com arquivos texto(os bons e velhos *flat-file*).

O Camel possibilita que você realize um roteamento baseado em regras declarativas através de beans do Spring ou através de uma DSL fluente por exemplo em Java ou Groovy.

Se você esta pensando em adotar SOA em sua organização, uma excelente abordagem é começar com o Camel por que ele é muito mais simples que um ESB, mas não perde em facilidades  e simplicidade. Confira a baixo um exemplo de rotamento:








Neste exemplo a cima estou roteamendo tudo que entra no diretório C:/dados para uma fila jms. Esta fila deve ser configurada, para que o camel saida aonde esta esta fila. Neste ponto podemos ver outra grande vantagem do Camel por que ele tem uma integração fantastica com a stack da apache, especificamente falando do Apache CXF para Webservices e o ActiveMQ como message broker.

Ainda seria possivel colocar condições neste roteamente usando a DSL do camel ou até mesmo XPath. A baixo vou mostrar como configurar para que o camel acesse a fila no ActiveMQ.









Esta configuração esta assumindo que você tem o ActiveMQ no ar e rodando na porta default, ele sera acessando via tcp. O Camel faz isso usando seu componente tcp que delega para o Apache Mina. O Camel também implementa a maioria dos padrões de integração de sistema os famosos Enterprise Integration Patterns. A lista completa de todos os compoenentes que o Camel suporte pode ser econtrada aqui.

Espero que tenham gostado, abraçõs e até a próxima camel riders!

Popular posts from this blog

Kafka Streams with Java 15

Rust and Java Interoperability

HMAC in Java