Componentes e Endpoints

A ligação do Camel com os endpoints é feita através de componentes. Os componentes são a implementação de mais baixo nível do meio utilizado para a troca de mensagens através do Camel. A diferença entre um endpoint e um componente é que enquanto o primeiro declara um terminador da rota, o segundo determina qual é o protocolo ou tecnologia utilizada pelo terminador.

O Camel conta, atualmente em sua versão 3.18.2, com suporte a mais de 300 componentes. Através destes, é possível ligar componentes que vão desde os mais tradicionais protocolos de mensageria, passando por redes sociais como o Twitter e o Facebook, até sistemas de CRM como Salesforce. Alguns dos principais componentes disponibilizados pelo projeto são:

Dica: todos os componentes do Camel contam com uma enorme gama de opções, sendo possível ajusta-los para os mais diversos propósitos.

ComponenteDescrição
AMQPSuporte ao protocolo AMQP 1.0 utilizado por sistemas de mensageria como Apache Artemis, Apache Qpid, Azure Service Bus e outros.
CassandraPara consumir e produzir dados do Apache Cassandra.
CXFSuporte a web services e REST APIs através do projeto Apache CXF.
DirectPara chamadas síncronas dentro de um mesmo contexto do Camel.
ElasticSearch RestPara produzir dados para um instância do ElasticSearch.
FilePara trocas de dados com arquivos, através da leitura e gravação de arquivos em locais pré-definidos.
FTPSuporte para troca de dados através do protocolo FTP.
HTTPSuporte para troca de dados através do protocolo HTTP.
JMSSuporte para troca de dados através de mensageria compatível com o padrão JMS.
KafkaSuporte para troca de dados usando o Apache Kafka.
NettyPara comunicação de mais baixo nível via sockets através do projeto Netty.
PulsarPara troca de dados com o Apache Pulsar.
RestPara consumir dados via REST.
SJMS2Suporte para troca de dados através de mensageria compatível com o padrão JMS utilizando uma implementação simples.
QuartzPara troca periódica ou pré-agendada de dados através do projeto Quartz.
SedaPara troca de mensagens assíncrona dentro de um mesmo contexto do Camel.

O Camel fornece, ainda, a possibilidade de estender o suporte a outros componentes através da implementação de interfaces customizadas que podem ser facilmente adicionadas ao Camel.