Come modificare le proprietà del processore durante il runtime utilizzando Camel?

StackOverflow https://stackoverflow.com/questions/1131107

  •  16-09-2019
  •  | 
  •  

Domanda

Ho un Camel definizione della rotta scritto in Java DSL in questo modo:

from(myEndpoint) 
.throttle(200)
.to(myOtherEndpoint);

Questa connette i miei due punti finali con un Throttler che limita il flusso di messaggi a 200 messaggi al secondo.

Sto cercando un modo per cambiare il maximumRequestCount / secondo durante il runtime. Così ho bisogno di ottenere in qualche modo all'istanza Throttler che si chiama e modificare la proprietà.

Come posso accedere alla Throttler?

È stato utile?

Soluzione

Ok, ho capito da sola ...

È necessario definire l'istanza Throttler te stesso.

Throttler throttler = new Throttler(null, 200);

Quindi è possibile utilizzare nei vostri percorsi come questo, perché Throttler implementa l'interfaccia Processore:

from(myEndpoint) 
.process(throttler)
.to(myOtherEndpoint);

Ogni volta che si desideri è possibile modificare le proprietà del throttler.

Altri suggerimenti

Sì che è una soluzione chiara.

In Camel 2.0 è ora possibile navigare i processori di runtime del percorso e, quindi, a trovare nessuna Throttlers e quindi in grado di modificare in modo dinamico.

Ma stiamo anche lavorando per migliorare il JMX in Camel 2.1 in modo da poter cambiare throttler / delayer e artisti del calibro di JMX.

E magari anche migliorare l'API Naviga in modo da poter trovare in un uno di linea, ad esempio, forse occhiata da id se fornisci un id nel percorso. O per i tipi in modo da poter filtrare e ottenere solo i Throttlers etc.

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