2
我正在使用apache camel 2.12.2爲http請求構建一個負載均衡器。爲此,我現在用駱駝的servlet,駱駝HTTP組件和我的路由定義是這樣的:使用apache緩存http請求駱駝
<from uri="servlet:///my/path?matchOnUriPrefix=true" />
<loadBalance inheritErrorHandler="false">
<failover roundRobin="true" maximumFailoverAttempts="2">
<exception>java.io.IOException</exception>
</failover>
<to uri="http://server1:9090?bridgeEndpoint=true&throwExceptionOnFailure=false" />
<to uri="http://server2:9090?bridgeEndpoint=true&throwExceptionOnFailure=false" />
<to uri="http://server3:9090?bridgeEndpoint=true&throwExceptionOnFailure=false" />
</loadBalance>
現在我想要實現使用Memcached的http請求緩存。爲此,我嘗試使用RoutePolicy。當有緩存命中時,是否有可能中斷交換並從onExchangeBegin返回,而不會觸及http端點?或者是否有更好的方法來使用Memcached實現對http請求的緩存?
我嘗試了camel-cache組件,但是我們不能使用EHCache,因爲我們已經在我們的項目中使用了Memcached。
您的客戶是直接訪問servlet還是通過反向代理訪問? – Ralf
這是可能的兩種方式。 – Joewyn
如果您可以通過反向代理強制訪問,那麼可能是實現HTTP響應緩存的更好的地方。我認爲你會獲得更好的性能,因爲如果你有緩存命中,你甚至不會去Java層。 – Ralf