将动态路由器 EIP 与负载均衡器 EIP 一起使用
Using the Dynamic Router EIP with the Load Balancer EIP
我想根据负载均衡器 EIP 将消息发送到的位置重定向 DynamicRouterBean 中的消息。我试图使用 @Header(Exchange.SLIP_ENDPOINT) 访问 DynamicRouterBean 中的前一个端点,但它被设置为 null(为什么?)。即使我得到 Exchange(在 DynamicRouterBean 中),fromEndPoint 也是 direct://my-lb(但预计它是 direct://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"));
这对我有用,谢谢克劳斯·易卜生。如果您能回答而不是发表评论,那就太好了,这样我就可以接受您的回答:)
public String slip(String body, @Header(Exchange.TO_ENDPOINT) String toEndPoint) {
...
}
我想根据负载均衡器 EIP 将消息发送到的位置重定向 DynamicRouterBean 中的消息。我试图使用 @Header(Exchange.SLIP_ENDPOINT) 访问 DynamicRouterBean 中的前一个端点,但它被设置为 null(为什么?)。即使我得到 Exchange(在 DynamicRouterBean 中),fromEndPoint 也是 direct://my-lb(但预计它是 direct://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"));
这对我有用,谢谢克劳斯·易卜生。如果您能回答而不是发表评论,那就太好了,这样我就可以接受您的回答:)
public String slip(String body, @Header(Exchange.TO_ENDPOINT) String toEndPoint) {
...
}