Thanks Jon for considering my proposal. Just checked the links (again) and yes, most of your recommendations are already available; however the rest of your hints, such as the "stale-while-revalidate" section or ehcache vs memcache would fit in nicely.
Alin On 20 March 2012 16:44, Jon Moore <[email protected]> wrote: > Hi Alin, > > Actually, as it turns out, much of this information is already in the > online docs: > > http://hc.apache.org/httpcomponents-client-ga/tutorial/html/caching.html > > http://hc.apache.org/httpcomponents-client-ga/tutorial/html/caching.html#storage > > Jon > > On Tue, Mar 20, 2012 at 8:19 AM, Jon Moore <[email protected]> wrote: > > > Hi Alin, > > > > Great suggestion - I'll look into updating the documents for the 4.2 > > release. > > > > Jon > > > > > > On Sat, Mar 17, 2012 at 6:51 PM, Vasile Alin <[email protected] > >wrote: > > > >> would be great if http-cache will have these hints in its overview > >> documents. > >> > >> Alin > >> > >> On 17 March 2012 17:50, Jon Moore <[email protected]> wrote: > >> > >> > Hi Robert, > >> > > >> > Naturally, the ultimate answer is: it depends on your scenario! > >> However, I > >> > can perhaps provide some ways of thinking about your cache > >> configuration. > >> > > >> > First, one of your choices will be which HttpCacheStorage > >> implementation(s) > >> > you want to use; there are 3 supported in the distribution: > >> > 1. an in-memory cache; this is the default implementation if you don't > >> > specify an alternative > >> > 2. an EhCache backend; this can be used to build a tiered in-memory > and > >> > on-disk cache, and the on-disk can be configured to persist across > >> > application invocations > >> > 3. a memcached backend; this can be used either to keep your JVM heap > >> size > >> > smaller by keeping the cache memory out-of-process, or as a shared > >> > memcached pool for a cluster of application servers, for example > >> > > >> > Now, because the CachingHttpClient is a decorator, you can actually > use > >> > multiple of these at the same time by wrapping them one inside the > >> other. > >> > So, for example, you can have a L1 in-memory cache backed by a L2 > >> EhCache > >> > that spills to disk. > >> > > >> > In all cases, you will want to be concerned with the total storage > >> > resources you want to allocate to the cache; EhCache and memcached > have > >> > their own configuration for this, but you may want to tweak this for > the > >> > in-memory cache if that's what you use. One thing to look at is the > >> maximum > >> > response body size that you'll cache, which currently defaults to 8KB; > >> if > >> > you plan on caching responses than that, you'll need to increase this > >> > setting via CacheConfig#setMaxObjectSizeBytes(). > >> > > >> > If your server(s) use the 'stale-while-revalidate' Cache-Control > >> directive, > >> > then you may want to play with > >> > CacheConfig#setAsynchronousWorkerIdleLifetimeSecs(), > >> > CacheConfig#setAsynchronousWorkersCore(), > >> > CacheConfig#setAsynchronousWorkersMax(), and > >> > CacheConfig#setRevalidationQueueSize(), all of which basically control > >> an > >> > underlying thread pool configuration to handle the background > validation > >> > requests. These have "safe" defaults, so you may not need to tweak > these > >> > until you get into performance tuning. > >> > > >> > Finally, if your origin servers don't set proper Cache-Control headers > >> but > >> > you want to cache the responses anyway, you may want to change > >> > CacheConfig#setHeuristicDefaultLifetime(). Another option for this is > to > >> > write another decorator to modify Cache-Control headers on specific > >> > responses that come through, wired up between the CachingHttpClient > and > >> the > >> > "real" underlying HttpClient. > >> > > >> > That said, if you just drop an unconfigured CachingHttpClient in, for > >> say, > >> > an API client that gets relatively small, but cacheable responses, you > >> > should hopefully see some immediate benefit just from the in-memory > >> cache. > >> > > >> > Hope that helps, > >> > Jon > >> > > >> > On Sat, Mar 17, 2012 at 10:21 AM, Robert Naczinski < > >> > [email protected]> wrote: > >> > > >> > > Hello, > >> > > > >> > > I want my application use cache, as shown below > >> > > > >> > http://hc.apache.org/httpcomponents-client-ga/tutorial/html/caching.html > >> > . > >> > > > >> > > Does anyone know the best settings or recommendations for the > >> > > configuration of the cache? > >> > > > >> > > Regards, > >> > > > >> > > Robert > >> > > > >> > > > --------------------------------------------------------------------- > >> > > To unsubscribe, e-mail: [email protected] > >> > > For additional commands, e-mail: > [email protected] > >> > > > >> > > > >> > > >> > > > > >
