[Zope] load-balancing recommendations ? (configuration and hardware)

Scott Boyd sboyd@futures.com
Sat, 10 Jun 2000 14:05:31 -0700 (PDT)


The problem is not load balancing, the problem with web applications is
load balancing with server affinity. Arrowpoint has a good hardware
product for providing this, because it sees session cookies passed back
that encode the server that this session belongs to. If you need to hide
the structure of web server environment. The Apache Jserv project also
uses this technique.

Server affinity is important so that state can be maintained between
pages. Without it, you have to figure out what the state was by
find the other system that served up the previous page. This is expensive
in time and bandwidth.

However, a method that works as well and is a lot cheaper is to use the
Linux Virtual Server (http://www.LinuxVirtualServer.org) project code to
provide load balancing to a group of servers. You can decide what
parameters you want to use to determine what system to use next: Least
Connected is the preferred method. If you are willing to let the world see
the balancing you can then use names like www1, www2, etc.

			www
                         |
            +------------+------------+
            |            |            |
           www1         www2         www3


Once handed off, all transactions between user browser and handled
by each system respectively. However, you can also configure this so
all requests continue to go through www and are then passed to the
appropriate backing system, which returns its data directly to the
client browser without passing back through the load balancing system.

S.

On Sun, 11 Jun 2000, chas wrote:

> Hi Folks,
> 
> I've often heard about the infinite-scalability that will
> be created by something like ZEO and I've always wondered
> about one thing : how is the load-balancing being done ?
> 
> Just say we have 3 front-line servers (ZSERVER_1, ZSERVER_2
> and ZSERVER_3 in the diagram below), each running Zope with 
> identical application logic replicated by ZEO (or simply 
> copied across manually); the front-line servers all use the 
> same database (DB) for storing sessions.  Our load-balancer 
> distributes incoming requests between the 3 servers :
> 
>                             +---[ZSERVER_1]----+
>                             |                  |
> REQUEST-->[LOADBALANCER]----+---[ZSERVER_2]----+------[DB]
>                             |                  |
>                             +---[ZSERVER_3]----+
> 
> What are people using for the load-balancer (and I'm
> looking for real load-balancing, not DNS round-robbin) 
> so that the multiple front-line servers appear as one 
> big server... ie. so that they are transparent to the 
> outside world. 
> 
> In particular, so that cookies set by any one of the 
> front line servers will be shared by the others. (ie. they 
> can not have different fully-qualified domain names or 
> else cookies set by one will not be shared by another).
> 
> Does anybody with experience have any recommendations 
> for the load-balancer ?  
> 
> Thank you very much,
> 
> chas
> 
> 
> ps. In the past I've got around this by ensuring that if the
>     very first request from a given browser is dealt with by, say, 
>     server silo8.domain.com, then all subsequent requests from that
>     browser are also dealt with by by that server. But that 
>     (a) introduces head-aches with application logic and (b) is
>     not good if silo8.domain.com suddenly goes down.
> 
> _______________________________________________
> Zope maillist  -  Zope@zope.org
> http://lists.zope.org/mailman/listinfo/zope
> **   No cross posts or HTML encoding!  **
> (Related lists - 
>  http://lists.zope.org/mailman/listinfo/zope-announce
>  http://lists.zope.org/mailman/listinfo/zope-dev )
>