2013-12-13 31 views
0

我需要Apache Camel停止HTTP连接缓存信息,因为它阻止了我的F5负载平衡器正常工作。没有连接缓存的Apache Camel http路由

这是路线定义:

from("direct:source").to("http://www.destination.com?bridgeEndpoint=true&throwExceptionOnFailure=false"); 

的情况是,我有2个进程运行骆驼航线和消费的流量。然后这两个进程将所有流量转发到负载均衡器地址,然后应该在4个服务器之间均衡流量。目前,Camel克服了负载平衡器,并将所有流量直接导向4台服务器中的2台。其他2台服务器保持闲置状态。我确信这不是一个负载均衡问题。

回答

0

我一直在尝试各种配置。我发现解决了问题如下:

<bean id="http" class="org.apache.camel.component.http.HttpComponent"> 
    <property name="camelContext" ref="camel"/> 
    <property name="httpConnectionManager" ref="httpConnectionManager"/> 
</bean> 

<bean id="httpConnectionManager" class="org.apache.commons.httpclient.SimpleHttpConnectionManager"> 
    <constructor-arg index="0" value="true"/> 
</bean> 

SimpleHttpConnectionManager有一个布尔“alwasyClose”,它做这项工作的构造函数。

0

您是否尝试过设置一个HTTP头

Connection: Close 

告诉HTTP客户端关闭连接。

您可以从骆驼设置也

from aaa 
    .setHeader("Connection", constant("Close")) 
    .to bbb 
+0

是的,它没有帮助。但感谢您的意见! – pempek