We use the Squid cache to disable traffic from our web servers, i.e. it is configured as a reverse proxy that responds to incoming requests before they reach our web servers.
When we get proximity with simultaneous requests for the same request that is not in the cache, Squid proxies all requests to our web servers ("origin"). For us, this behavior is not ideal: our origin servers got bogged down trying to execute N identical requests at the same time.
Instead, we want the first proxy request to be sent to the source server, the rest of the requests to the queue at the Squid level, and then everything would be executed by Squid when the source server responded to this first request.
Does anyone know how to configure Squid for this?
We have read the documentation many times and carefully looked at this topic on the Internet, but we cannot understand how to do this.
We also use Akamai, and, interestingly, this is the default behavior. (However, Akamai has so many nodes that we still see many concurrent requests in certain traffic scenarios, even if the Akamai super-node function is enabled.)
This behavior is explicitly configured for some other caches, for example. the Ehcache documentation suggests the option "Concurrent Cache Misses: Cache Misses", which will cause the filter chain located above the cache filter to be processed. To prevent threads from requesting the same key for useless duplicate work, these threads are blocked behind the first thread. "
Some people call this behavior a "blocking cache" because subsequent concurrent requests block the first request before it is executed or timed out.
thanks for considering my question about noob!
Oliver