我希望重定向DynamicRouterBean中的消息,具体取决于负载均衡器EIP发送到的位置。我试图使用@Header(Exchange.SLIP_ENDPOINT)访问DynamicRouterBean中的前一个端点,但是它被设置为null(为什么?)。即使我得到了Exchange(在DynamicRouterBean中),fromEndPoint也是直接的:// my-lb(但是它应该是直接的:// my-lb-a或direct:// my-lb-b ?? )。
我后来使用CamelHistory来查看消息的哪些端点,但仍有问题。是不是前一个端点(或fromEndPoint,或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"));
答案 0 :(得分:0)
这对我有用,谢谢克劳斯易卜生。如果你能回答而不是评论那么我会接受你的答案会很棒。)
public String slip(String body, @Header(Exchange.TO_ENDPOINT) String toEndPoint) {
...
}