Forum Discussion

Gregory_Gerard_'s avatar
Gregory_Gerard_
Icon for Nimbostratus rankNimbostratus
Dec 02, 2007

End to end persistence?

Deployment:

 

n front end web servers handling user activity (2 right now).

 

m back end boxes doing the actual heavy lifting

 

 

Desire:

 

I would like a user to be bound to both FE and BE boxes and only moving iff and only if there is a failure.

 

 

Background:

 

I understand persistence is based upon connections and not HTTP requests. Check.

 

 

Internally, we use Apache Jakarta HTTPClient to access the back end servers and it tries to reduce the overall number of connections by muxing requests into one connection if possible.

 

 

The front end server doesn't currently keep affinity of connection (and because of the libraries, might not be able to).

 

 

What are my options?

 

 

thanks,

 

greg

1 Reply

  • Hi Greg,

     

     

    Are there equal numbers of front- and back-end servers? If so, for each web vip you could configure a backend vip containing one back-end server at the highest priority with the other backend servers at lower priority. The higher priority pool member would get all requests. If it was unavailable, the lower priority server(s) would then receive the requests.

     

     

    If you have a mismatched number of front- and back-end web servers or you don't like the above idea, you could create a rule which sets a cookie for the client -> front end web server VIP. This assumes that the front-end web server would include a cookie from the client request in its request to the back-end server. You would then use a rule on the back-end VIP to look for that cookie and create a session table entry with the cookie value and back-end pool member selected for the request.

     

     

    You can actually load balance per HTTP request as opposed to per-TCP connection, using OneConnect. Take a look at Deb's post (Click here) for detailed information on OneConnect.

     

     

    Aaron