在Camel中执行Sticky负载平衡

时间:2012-09-12 07:32:13

标签: soap xpath load-balancing apache-camel

您好我想在基于SOAP会话的apache camel中执行粘性负载平衡,它嵌入在第一个响应的ServiceGroupID节点中。

我写了一条小路,如下:

from(uri)
.loadBalance().sticky(xpath(query).namespaces(env).namespaces(wsa).namespaces(ax))
.to(BE1,BE2);

其中URI是传递请求的字符串,BE1和BE2是两个后端服务器。

我的查询是

String query = "/soapenv:Envelope/soapenv:Header/wsa:ReplyTo/wsa:ReferenceParameters/axis2:ServiceGroupId/text()";

如果我没错,这个查询会从我的SOAP头中提取servicegroupID。

但是当我尝试执行平衡时,由于某种原因,requets不会被传递到同一个后端服务器。

和我的env,wsa和ax是命名空间,它们是:

Namespaces env = new Namespaces("soapenv", "http://schemas.xmlsoap.org/soap/envelope/");
Namespaces wsa = new Namespaces("wsa", "http://www.w3.org/2005/08/addressing");
Namespaces ax = new Namespaces("axis2", "http://ws.apache.org/namespaces/axis2");

我在这里做错了吗? 如果是这样的话?我将不胜感激任何帮助。

1 个答案:

答案 0 :(得分:0)

还在邮件列表中讨论 http://camel.465427.n5.nabble.com/Performing-Sticky-load-balancing-in-Camel-tp5719170.html

请不要同时在多个地方开始相同的主题。如果你这样做,那么至少告诉我们,所以我们会知道这一点。

人们在花时间帮助你时会感到不安,当它已经在另一个地方得到回答时!