Pergunta

Tenho dificuldades em entender o conceito.

Estou tentando implementar um ponto de extremidade que escuta uma porta TCP para mensagens recebidas em um formato proprietário, que transformaria a mensagem e faria camelo assumir o encaminhamento e o roteamento.

Eu entendi corretamente que o produtor é responsável por enviar mensagens para o Endpoint e a Consumer Recebe -os desse terminal?

Ao estudar as interfaces, não consegui descobrir o fluxo de mensagens entre esses objetos, especialmente na parte do consumidor. Consumer apenas define start() e stop() métodos...

Ao configurar um teste em uma implementação de esqueleto, Camel invocado createProducer() no terminal e process() no objeto produtor. Depois disso, retornou, Swithout fazendo qualquer coisa com o consumidor ou o processador associado a ele.

Alguém poderia me apontar na direção certa?

Foi útil?

Solução 2

Finalmente descobri olhando para o componente do fluxo.

Acontece que cometi o erro de pensar no ponto final como algo central que tudo deve ir.

A resposta simples é que o consumidor recebe dados de um sistema externo (ouvindo em um soquete do servidor no meu caso) e o produtor envia dados para o sistema externo.

Como meu terminal é somente leitura (ele não será usado como destino final do processo de roteamento de camelos), eu realmente não preciso de um produtor (ele deve lançar uma hora de execução se o sistema ainda tentar fazê-lo devido à configuração incorreta). Um exemplo adequado seria o endpoint de átomo de camelo - você pode ler feeds, mas (a partir de 1.6.0) você não pode publicar um.

Da mesma forma, você só precisa de um produtor para um terminal de gravação que não recebe dados de um sistema externo (por exemplo, registro).

Outras dicas

É importante lembrar que um Endpoint, criado por um Component (ou seja, fábrica de endpoint), pode sentar -se em qualquer fim de um camelo Route. Se você colocar o Componente No início de uma rota, então deve haver uma implementação do Consumer parte de Componente. Isso faz o trabalho de converter a entrada/solicitação específica (como uma solicitação HTTP) em algo genérico - um camelo Exchange - que pode viajar por um Rota. Considerando que se você colocar o Componente no final de um rota Então você deve ter uma implementação de um Producer. o Produtor faz o trabalho de tomar o Intercâmbio do final de um rota e convertê -lo em algo específico (como uma mensagem JMS).

Acho que a documentação do fusível ESB é melhor (em geral) do que o Site Apache Camel. De Página de componente FUSE ESB:

Terminais de consumidores consumir solicitações. Eles sempre aparecem no início de uma rota e encapsulam o código responsável por receber solicitações de entrada e despachar as respostas de saída.

Terminais do produtor produzir solicitações. Eles sempre aparecem no final de uma rota e encapsulam o código responsável por despachar solicitações de saída e receber respostas recebidas.


enter image description here

Um produtor estende o processador, o que significa que também possui um método de processo.

Confira o capítulo 1 gratuito no Camel in Action Book, que fala um pouco sobre esses conceitos de camel.http://www.manning.com/ibsen/

E este tutorial também é excelente, pois apresenta esses conceitos em um ritmo constantehttp://camel.apache.org/tutorial-example-reportincent.html

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top