[Zope] Apache/Zope: methods for serving high traffic?
Toby Dickenson
tdickenson@geminidataloggers.com
Fri, 04 May 2001 13:29:27 +0100
On Thu, 03 May 2001 13:31:50 -0700, sean.upton@uniontrib.com wrote:
I spent some time planning a site with similar characteristics last
year... The project was canned before it got out of a lab environment,
so I can only offer untested advice.
> a.
>[REQUEST]->(LOADBALANCER)->(SQUID+REDIRECTOR)->(APACHE)->(ZSERVER)
> b.
>[REQUEST]->(LOADBALANCER)->(SQUID+REDIRECTOR)->(APACHE)->(PCGI)->(ZOPE)
> c. [REQUEST]->(LOADBALANCER)->(SQUID+REDIRECTOR)->(ZSERVER)
You have a squid in this mix, which you say you are using as a
redirector only. How important is caching to you? In my project
caching was all important; cache misses were very expensive
In all of those scenarios squid will cache based on the
post-redirector url. If you are load balancing between n back-end
servers then you will need n times larger cache space, and can expect
a smaller cache hit ratio (worst case; n times smaller)
What type of load balancing processing are you planning for the squid
redirector? If just a random selection, are you aware than Apache's
mod_rewrite can do that? (some of Apache's other features make it
attactive for the front-end of this proxy pipeline, but squid is not a
bad choice either)
Unlike in your application, we expected that ZEO-server latency would
be a significant factor. To reduce latency in filling ZEO client
caches we were planning to distribute load between back-end Zope's
based on dataset affinity..... That is preferring to send a request to
a Zope that has recently handled a different request for the same
data. We looked at doing this in a squid redirector, but it is not so
easy to share state between the multiple redirector processes.
Eventually we chose to implement this in a new http proxy.
Our final configuration looked like:
REQUEST->(LoadBalancer)->[(Apache)->(Squid)->(redirector)]->[(ZServer)]
Toby Dickenson
tdickenson@geminidataloggers.com