낙타를 사용하여 런타임 동안 프로세서 속성을 변경하는 방법은 무엇입니까?

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

  •  16-09-2019
  •  | 
  •  

문제

나는있다 낙타 다음과 같은 Java DSL로 작성된 경로 정의 :

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

이것은 메시지 흐름을 초당 200 개의 메시지로 제한하는 스로틀 러를 사용하여 두 개의 엔드 포인트를 연결합니다.

런타임 동안 MaximumRequestCount / Second를 변경하는 방법을 찾고 있습니다. 그래서 나는 어떻게 든 호텔을 호출하고 속성을 변경하는 스로틀 러 인스턴스에 도달해야합니다.

Throttler에 어떻게 액세스 할 수 있습니까?

도움이 되었습니까?

해결책

좋아, 혼자서 알아 냈어 ...

스로틀 인스턴스를 직접 정의해야합니다.

Throttler throttler = new Throttler(null, 200);

그런 다음 Throttler가 프로세서 인터페이스를 구현하기 때문에 이와 같은 경로에서 사용할 수 있습니다.

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

당신이 좋아할 때마다 당신은 스로틀 러의 속성을 변경할 수 있습니다.

다른 팁

네, 깔끔한 해결책입니다.

Camel 2.0에서는 이제 경로에서 런타임 프로세서를 탐색하여 스로틀 러를 찾은 다음 동적으로 변경할 수 있습니다.

그러나 우리는 또한 Camel 2.1에서 JMX를 개선하기 위해 노력하고 있으므로 Throttler/Delayer 및 JMX에서 좋아하는 것을 변경할 수 있습니다.

또한 Navigate API를 개선하여 한 라이너에서 찾을 수 있습니다. 예를 들어 경로에서 ID를 제공하는 경우 ID로 조회 할 수 있습니다. 또는 유형별로 필터링하고 스로틀 러 등만 얻을 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top