Cómo cambiar las propiedades del procesador durante el tiempo de ejecución usando Camel?

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

  •  16-09-2019
  •  | 
  •  

Pregunta

Tengo un Camel de definición de ruta escrito en Java DSL como esto:

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

Esto conecta mis dos puntos finales usando un Throttler que limita el flujo de mensajes 200 mensajes por segundo.

Estoy buscando una manera de cambiar la maximumRequestCount / segundo durante el tiempo de ejecución. Así que tengo que conseguir de alguna manera a la instancia Throttler que se llama y cambie la propiedad.

¿Cómo puedo acceder al Throttler?

¿Fue útil?

Solución

Ok, lo he descubierto por mí mismo ...

Es necesario definir la instancia Throttler mismo.

Throttler throttler = new Throttler(null, 200);

A continuación, puede utilizarlo en sus rutas de este tipo, porque Throttler implementa la interfaz del procesador:

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

Cada vez que lo desea, puede cambiar las propiedades del limitador.

Otros consejos

Sí que es una solución ordenada.

En Camel 2.0 ahora se puede navegar por los procesadores de tiempo de ejecución en la ruta y por lo tanto se encontró ninguna Throttlers y luego ser capaz de cambiar de forma dinámica.

Pero también estamos trabajando en la mejora de la JMX en camello 2.1 para que pueda cambiar throttler / retardador y los gustos de JMX.

Y tal vez también mejorar la API Navegar por lo que puede encontrar en un chiste, por ejemplo, tal vez en Buscar por ID si se proporciona un identificador en la ruta. O por tipos para que pueda filtrar y sólo recibe las Throttlers etc.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top