2015-07-04 2 views
0

Я хочу перенаправить сообщение в DynamicRouterBean в зависимости от того, куда он был отправлен балансировщиком нагрузки EIP. Я пытался получить доступ к предыдущей конечной точке внутри DynamicRouterBean с помощью @Header (Exchange.SLIP_ENDPOINT), но для этого параметра установлено значение null (Why?). Даже когда я получаю Exchange (в DynamicRouterBean), fromEndPoint является прямым: // my-lb (но ожидал, что он будет либо прямым: // my-lb-a или direct: // my-lb-b ??).Использование динамического маршрутизатора EIP с балансиром нагрузки EIP

Я позже использовал CamelHistory, чтобы узнать, какие конечные точки были у сообщения, но все еще есть вопрос. Не является ли предыдущая конечная точка (или из EndPoint или Exchange.SLIP_ENDPOINT) одной из конечных точек балансировки нагрузки?

from("direct://my-lb") 
    .loadBalance().roundRobin() 
     .to("direct://my-lb-a") 
     .to("direct://my-lb-b") 
    .end() 
.dynamicRouter(method(DynamicRouterBean.class, "slip")); 
+1

Да, есть TO_ENDPOINT - просто более внимательно посмотреть на то, что данные, которые вы имеете на бирже –

ответ

0

Это сработало для меня, спасибо Клаусу Ибсене. Было бы здорово, если бы вы могли бы ответить, вместо того, чтобы комментировать, так что я могу принять ваши ответы :)

public String slip(String body, @Header(Exchange.TO_ENDPOINT) String toEndPoint) { 
... 
} 
Смежные вопросы