我正在使用HttpClient 4.5.2,我在其中设置了一个CachingHttpClient,它使用EhCache将文件保存到一个持久的diskStore中。这适用于在初始下载完成后发生的正常请求。
我不知道如果多个线程第一次尝试下载同一个文件会发生什么。我是否必须使用FutureRequestExecutionService,或者有更好的方法来实现这一目标?应用程序必须下载的文件可能很大,我希望每个文件都有多个请求。
答案 0 :(得分:0)
默认情况下,像Ehcache这样的缓存解决方案无法解析thundering herd problem。
所以这取决于HttpClient处理这个用例的方式。
请注意,Ehcache支持read-through pattern,它可以通过确保只有一个请求导致缓存值加载而其他请求等待来解决此问题。