Domanda

Non ho difficoltà che avvolgono la mia testa attorno al concetto.

Sto cercando di implementare un endpoint che in ascolto su una porta TCP per i messaggi in arrivo in un formato proprietario, che sarebbe poi trasformare il messaggio e hanno cammello prendere in consegna l'inoltro e instradamento.

Forse ho capito bene che che il produttore è responsabile per l'invio di messaggi in Endpoint e la Consumer li riceve da quel punto finale?

Quando si studiano le interfacce non riuscivo a capire il flusso di messaggi tra gli oggetti, soprattutto da parte dei consumatori. Consumer definisce solo start() e stop() metodi ...

Quando si imposta una prova su un'implementazione scheletro, Camel invocato createProducer() sull'endpoint e process() sull'oggetto produttore. Dopo di che è tornato, swithout di fare qualsiasi cosa con il consumatore o il processore ad esso associati.

Qualcuno mi potrebbe punto nella giusta direzione?

È stato utile?

Soluzione 2

ho finalmente capito che fuori, cercando in componente Stream.

Risulta che ho fatto l'errore di pensare il punto finale, come qualcosa di centrale attraverso cui tutto deve andare.

La risposta più semplice è che il consumatore riceve i dati da un sistema esterno (in ascolto su un socket server nel mio caso) e il produttore invia i dati al sistema esterno.

Dato che il mio punto finale è di sola lettura (non sarà utilizzato come la destinazione finale del processo di instradamento Camel), io davvero non hanno bisogno di un produttore (dovrebbe lanciare una RuntimeException se il sistema tenta ancora di farlo a causa di errori di configurazione ). Un esempio calzante potrebbe essere il punto finale di cammello-atomo -. È possibile leggere i feed, ma (al 1.6.0) non è possibile pubblicare un

Allo stesso modo, è necessario solo un produttore per una sola scrittura endpoint che non riceve i dati da un sistema esterno (per esempio la registrazione).

Altri suggerimenti

E 'importante ricordare che un Endpoint, creata da un Component (cioè Endpoint di fabbrica), può sedersi a o fine di un Route cammello. Se si mette il Componente all'inizio di un percorso, allora ci deve essere un'implementazione della parte Consumer del Componente . Questo fa il lavoro di conversione di ingresso specifica / richiesta (come una richiesta HTTP) in qualcosa di generico - un Exchange Camel - che può viaggiare giù un Percorso . Mentre se si mette il Componente al termine di un percorso di allora è necessario avere un'implementazione di un Producer. Il Produttore fa il lavoro di prendere il Cambio a partire dalla fine di un percorso e convertirlo in qualcosa di specifico (come un messaggio JMS).

Trovo la documentazione FUSE ESB di essere meglio (in generale) rispetto al sito web di Apache Camel . Dalla pagina di FUSE ESB Componente :

  

endpoint dei consumatori consumano richieste. Essi appaiono sempre alla partenza   di un percorso e che incapsulano il codice preposto al ricevimento   le richieste in entrata e in uscita del dispacciamento risposte.

     

endpoint Produttore la produzione di richieste. Essi appaiono sempre alla fine del   un percorso e hanno incapsulare il codice responsabile del dispacciamento   le richieste in uscita e ricevere risposte in arrivo.


entrare descrizione dell'immagine qui

Un produttore estende processore che significa che ha un metodo processo pure.

Controlla il capitolo gratuito 1 nel libro Camel in Action che racconta un po 'di quei concetti Camel. http://www.manning.com/ibsen/

E questo tutorial è eccellente in quanto introduce questi concetti in un ritmo costante http://camel.apache.org/tutorial-example-reportincident.html

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top