1

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.

Failing that, any advice on what structure to use for the failover would be very much welcome. Currently, I'm thinking of having a list of servers and then a choice of algorithms such as: top down, random, prefer top etc... Another approach I thought of would be to split the list of failover servers in to primary and backup. Any thoughts/advice welcome. Thanks.

Supertux
  • 131

4 Answers4

4

Carp is an open standard for server clustering, that can do failover. It's mostly a BSD thing, but most unixes can use ucarp. VRRP is the general IETF standard, but is designed more for routers than application servers.

Cian
  • 5,878
1

What operating system will your application run on?

If Windows, then there is a clustering API you can use to make your application cluster-aware and compliant with Microsoft clustering, just like SQL Server or Exchange.

http://msdn.microsoft.com/en-us/library/cc296100(VS.85).aspx

Massimo
  • 72,827
1

If you're looking for a simple way of providing multiple server addresses, you may use DNS SRV records for that. That's RFC 2782.

0

It really depends on the application and the server component that needs to be redundant. Web sites are relatively easy to build redundancy for. Exchange and SQL are different matters altogether. Can you give us more detail on the app and the server?

joeqwerty
  • 111,849