Hi Ali,

> The big picture would be somehow storing the current state between the
> user and the web server (independent of the actual web application) so
> that it is restored (maintained) when one of the web servers goes down.
> Consider current authenticated user sessions, content posting, etc. When
> one of the active back-end web servers goes down, the logical connection
> between the user and the web application is lost; the main question is how
> is it possible to restore this logical connection when the other back-end
> web server is used as a replacement by the load balancer? How is it
> possible to synchronize user sessions, file downloads, active logins, etc.
> between two master/backup web servers so that the client never feels the
> switchover?

Everything you are asking needs to be addressed on the application side (by
fully synchronizing the backends).

The load-balancer/reverse proxy (even a Barracuda) can by definition *not*
do anything about this.

What the load-balancer can do is to make sure a specific client always hits
the same backend.


Consider this: Bob is logged into your application, and HAProxy (or the
barracuda unicorn load-balancer) forwards all of Bob's requests to backend
server 1 (for example by using the cookie).

Now backend server 1 fails completely.

The load-balancer/reverse proxy may failover Bob to backend server 2 and
it will also maintain the cookie. But if backend server 2 doesn't know
howto handle Bob, because server 1 had the session data, then Bob has to
restart his session.

If, on the other hand, backend server 1 and backend server 2 share the
same session data (or synchronize them somehow), then everything is
fine.

But its not something a load-balancer can achieve, its your application
that has to do this.



Regards,

Lukas                                     

Reply via email to