2013-12-13 79 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