views:

87

answers:

3

Hi,

I'm building a client-server application and I am looking at adding failover to the client so that when a server is down it will try to connect to another available server. Are there any standards or specifications covering server failover? I'd rather adopt an existing standard than implement my own mechanism.

A: 

You're question is very general. here are some general answers: Google for Fault Tolerant Computing

Google for High Availability Solutions

Jim Barrows
I'd thought there would be some sort of spec or protocol or standards around failover but couldn't find any - was hoping someone might know of one.
Supertux
+1  A: 

I don't there is, or needs to be any. It's pretty straight forward and all depends on how you can connect to your sever, but basically you need to keep sending pings/keepalives/heartbeats whatever you want to call em, and when a fail occurs (or n fails in a row, if you want) change a switch in your config.

Typically, the above would be running as a separate service on the client machine. Altenativly, you could create a method execution handler which handles thr execution of all server calls you make, and on Communication failure, in your 'catch' block, flick your switch in config

Jaimal Chohan
A: 

This is usually handled at either the load balancer or the server level. This isn't something you normally do in code at the client.

Typically, you multihome the servers each having their own IP + one that is shared between all of them. Further, they communicate with each other over tcp for the heartbeat to know which is the Active node in an Active / Passive cluster.

I can't tell what type of servers you have, but most of the windows servers can do this natively.

You might consider asking the question at serverfault to see how to properly configure your servers to support this.

Chris Lively