2015-07-04 47 views
0

我想根據負載均衡器EIP發送到的位置來重定向DynamicRouterBean中的消息。我試圖使用@Header(Exchange.SLIP_ENDPOINT)訪問DynamicRouterBean中的前一個端點,但設置爲null(爲什麼?)。即使我得到Exchange(在DynamicRouterBean中),fromEndPoint也是直接的:// my-lb(但是預計它是直接的:// my-lb-a或direct:// my-lb-b? )。將動態路由器EIP與負載均衡器EIP一起使用

我後來使用駱駝歷史記錄來查看哪些端點消息已經存在但仍然有問題。不是以前的端點(或來自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) { 
... 
}